問題タブ [mvvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mvvm - MVVM + Datacontext + DataTemplate + Blend = 問題
現在、WPF プロジェクトで MVVM を使用していますが、すべてうまく機能しています。MasterViewModel の currentView プロパティを使用して、1 つのマスター ビューと多くの詳細ビューを管理しています。データ テンプレートを使用して、ビューをビューモデルにバインドします。実際、私のマスター ビューには、コンテンツ プロパティが CurrentView プロパティにバインドされているコンテンツ コントロールがあります。この currentview プロパティをビューモデルなどに設定すると、対応するテンプレートが呼び出されます。
私の問題は、これを使用すると、データテンプレートによって配置されるため、詳細ビューに明示的なデータコンテキストがないことです。そのため、blend では、ビューを開いてそのデザインを編集すると、ビューにバインドするデータがありません。データコンテキストを詳細ビューに設定すると、バインドできるすべてのデータがブレンドで表示されますが、実行時には、データテンプレートによって設定されたデータコンテキストが詳細ビューで設定されたデータコンテキストによって上書きされるため、実行時にデータがありません。
データテンプレートによって管理されるビューと Blend で表示できるデータコンテキストを使用して、適切な MVVM プロジェクトを作成する方法を知っている人はいますか?
ありがとう、
wpf - WPFデータバインディングと型変換
XAMLのUIオブジェクトに表示されるデータ型のWPFバインディングと変換について質問があります。
さまざまなアプリケーションで再利用したいユーザーコントロールがあります。ユーザーコントロールは、サムネイル画像といくつかのTextBlockを表示して、名前や住所などの個人の人口統計情報を表示します。ユーザーコントロールはMVVMデザインで使用されるため、ユーザーコントロールに固有のViewModelにバインドされます。
典型的なMVVMの設計原則に従って、ユーザーコントロールのViewModelは、より大きなUIを構成するために、他のViewModelに埋め込まれることがよくあります。
ユーザーコントロールビューモデルは、バインディングオブジェクトとして特定のタイプ(クラス)を想定しています。ただし、UCのVMが埋め込まれているViewModelは、まったく異なるオブジェクトモデルを持っているため、データをUCのVMに単純に渡すことはできません。親VMのデータモデルをUCVMのデータモデルに変換する必要があります。
私の質問はこれです:この変換を実行するための認可された方法はありますか?
IValueConverterとIMultiValueConverterを見ましたが、これらは進むべき道のようには見えません。
必要なのは、親VMと組み込みUC VMの間の一種のシムであり、親VMのデータがUCVMに必要な形式に変換されると思います。
または、基本的に、親VMが提供するタイプを処理するためにカスタムUC VMを作成する必要がありますか?
silverlight - どのSilverlightMVVMテストプロジェクトタイプですか?
Silverlight MVVMアプリケーションのテストプロジェクトを作成する場合、ViewModelを対象とした標準のC#テストプロジェクト、またはビューを対象としたSilverlightテストプロジェクト、あるいはその両方を作成する必要があります...
wpf - InkCanvas への MVVM バインディング
どうやら通行止めになったようです。Prism で MVVM を使用しており、インク キャンバスを必要とするビューがあります。ViewModel からビューにバインドされている StrokeCollection を作成しました。ビューモデルからコレクションを設定できますが、ユーザーが描画している間、ビューモデルに変更が反映されません。これを機能させる方法はありますか?
私のViewModelの私のプロパティは次のとおりです:
これが私の XAML バインディング行です。
何らかの理由で、明らかに InkCanvas は ViewModel に変更を通知しません。
silverlight - Silverlight 単体テスト - UI の基本型を確認する方法は?
要するに、Silverlight 単体テスト中に UI ユーザー コントロールのタイプを確認するにはどうすればよいでしょうか。
詳細:親ビューの ContentControl に子ビューを読み込んでいます。テスト中に、正しいビューが正しい時間に読み込まれたことを確認したいと思います。私のビューは別々のプロジェクトにあり、それらのアセンブリへの参照を親ビューのテスト プロジェクトに追加したくありません (結合が強すぎるため)。
これは私が立ち往生している場所です:
モッキングを使用する必要がありますか?
(WaitFor はJustin Angelが提供するヘルパー メソッドです)
silverlight - Silverlight MVVM 単体テストの説明
デバッガーで単体テストを実行するときに、オブジェクトまたはプロパティを見ると null 参照が発生する理由を誰でも説明できますか? 例えば:
[9 行目] viewModel フィールドをシェル ビューの DataContext に設定すると、「オブジェクトがインスタンスに設定されていません...」という例外が発生します。私のdatacontextがshell.xaml.csに設定されていることは確かです。ファイル全体:
私は何か間違ったことをしていることを知っていますが、誰かが何を説明できますか?
ありがとう、マーク
wpf - MVVM WPF - ビューモデルの使用
部門、役職、給与タイプなどのマスター詳細を入力する必要がある 3 つのコンボボックスを持つ WPF データ入力フォームがあります。これら 3 つのマスター情報はすべてデータベースから取得する必要があります。データ層として LINQ to SQL を使用しています。これらのマスター情報 (つまり、3 つのビューモデル) のメンテナンス ページを既に作成しています。
今私の質問:
これらの3つのビューモデルをコンボボックスに使用することをお勧めしますか(ビューに複数のビューモデルが使用されているため、MVVMを無効にします)、それらを直接バインドしますか、それともプライムクラスの3つの観察可能なコレクション(Department 、JobTitle & PayType)。
この点で何か助けていただければ幸いです。同じシナリオで多くのフォームがあり、どのルートを取るかを決めることができません。
前もって感謝します。
ラジャ
silverlight - Silverlight 3.0 での .NET RIA サービスと MVVM の結合
Silverlight 3.0 で .NET RIA Services と MVVM を使用する場合、RIA Services の Metadata タイプと MVVM パターンの ViewModel に違いはありますか? これらは同じものですか、それとも別々に保管する必要がありますか?
メタデータ型は、部分エンティティ クラスに対する封印された内部クラスです。そこには適切な分離があるようには見えませんが、メタデータ型は、ViewModel のように見える Validation の属性で装飾することもできます。
いろいろと調べてみましたが、これについて詳しく書かれているものはありませんでした。
c# - WPF MVVM バインディング Checkbox.IsChecked をディクショナリ内の名前付きアイテムに
すべてが同じ種類の異なる選択を表すチェックボックスのグループがあります (私の例では、それらはすべて異なるファイルの種類です)。ViewModel の個々のプロパティにそれぞれをバインドするのはやり過ぎのように感じます。それらをすべて 1 つのコレクションにバインドし、バインド構文を使用して、各チェックボックスをコレクション内の特定の項目にキーでバインドすることをお勧めします。私はMVVMパターンに固執しようとしているので、怠惰になってCheckedイベントなどを処理したくないだけです。
WPF バインディング構文を使用してコレクション内のパスまたはキーを表現する方法はありますか? たとえば、Dictionary<string, bool>
呼び出された FileTypes を ViewModel のパブリック プロパティとして公開する場合、チェックボックスの 1 つを FileTypes["aspx"] にバインドする方法はありますか? のようなより複雑なデータ構造がある場合はどうなりDictionary<string, Dictionary<string, int>>
ますか?