問題タブ [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.
wpf - Model-View-Presenter および Modal ダイアログ ボックス.... 方法
私は WPF で MVP/MV-VM を実装していますが、これまでのところうまくいっています。ただし、このモデルがモーダル ダイアログ ボックスの実装をどのようにサポートしているかはわかりません。私は Crack.NET ( http://www.codeplex.com/cracknetproject ) から自分の作品を派生させて、この作業がどのように機能するかを学びました。
メニューがある ShellView ビュー (単なる XAML) があります。このメニューは、「EditPreferences」という ShellModelView のコマンドにバインドされます。
ShellModelView は EditPreferences の ICommand を実装します。ここでは、ユーザーがアプリケーションの設定を編集できるようにするダイアログ ボックスを表示します。
ここにいくつかの問題があります: 1. ShellModelView には、ダイアログを適切に親にするための ShellView への参照がありません。ShellModelView は ShellView の DataContext ですが、セットアップされた後方参照が表示されません。2. いずれにせよ、ShellModelView は明示的な UI をロードするべきではありません。では、ここでの適切な対話モデルは何でしょうか? 3. ロジックとビューも適切に分離されるように、PreferencesDialog を構築するにはどうすればよいですか? PreferencesDialog 自体は Window である必要があるため、その上で ShowDialog を呼び出すことができますが、これはインスタンス化するために Window (View など) への参照が必要であることを意味します。理想的には、PreferenceDialog 内でビューをインスタンス化せずに (おそらくモック ビューを使用して) コード/検証を単体テストできるはずです。
wpf - ViewModel を MVVM パターンで構築するための部分クラスではないのはなぜですか?
部分クラスを使用して ViewModel を構築してみませんか?
ビューモデルクラスの定義には、データモデルのデータクラスの定義が含まれているため、データモデルの部分クラスを拡張または作成し、コマンドなどでそれらを完成させるなど、いくつかの作業を削減してみませんか.
wpf - MV-VM で IDataErrorInfo を使用する
ドメイン オブジェクトが IDataErrorInfo を実装していて、MV-VM を使用している場合、ViewModel を介してビューにエラーを伝達するにはどうすればよいですか? モデルに直接バインドする場合は、バインディングで "ValidateOnExceptons" および "ValidateOnErrors" プロパティを true に設定します。しかし、私の ViewModel は IDataErrorInfo を実装していません。私だけのモデル。私は何をしますか?
明確化 ドメイン オブジェクトに IDataErrorInfo を実装する既存のコードベースを扱っています。ビューモデルに IDataErrorInfo を実装することはできません。
wpf - ViewModel のコマンドを View の要素にバインドする最善の方法は何ですか?
MV-VM を使用して WPF に RoutedCommands を実装しようとした人は誰でも、間違いなく問題に遭遇しています。コマンド (UI 以外のコマンド) は ViewModel に実装する必要があります。たとえば、CustomerViewModel を保存する必要がある場合は、CustomerViewModel に直接コマンドとして実装します。ただし、ウィンドウをポップアップしてユーザーのアドレスを表示したい場合は、UI 固有の関数であるため、ShowCustomerAddress コマンドをビューに直接実装します。
ビューモデルでコマンド バインディングを定義し、それらをビューで使用するにはどうすればよいですか?
silverlight - Silverlight データバインディング - ビューモデルのプロパティに ValueConverter をバインドする
次のxamlがあるとしましょう...
...そしてそれに付随する次のコード...
これは期待どおりに機能しますが、ビューに必要なデータを取得するために必要な 2 つの別個のクラスがあるのは違和感があります (ViewModel と LoadChildrenValueConverter が、ハード コーディングされたデータを返すのではなく、Web サービスからデータを取得したと想像してください)。ここでより良い解決策はありますか?こんなこともあるのかな…と思っていました。
...しかし、この行を機能させることができません...
<control:HierarchicalDataTemplate ItemsSource="{???}"
>
...そして、それでも素晴らしい解決策とは思えません。誰もこれのためのすてきなきれいな解決策を持っていますか?
wpf - WPF MVVM の 2 つの「自己更新」プロパティ
Josh Smithの例のようなWPFにMVVMアーキテクチャがあることを考えると
互いに更新する 2 つのプロパティを「同期」して実装するにはどうすればよいでしょうか? モデルに Price プロパティと PriceVatInclusive プロパティがあります。
-価格が変更されたときに、付加価値税込みの価格が自動的に「価格 * 1.21」になるようにしたい。
-逆に、PriceVatInclusive が変更された場合、Price を「PriceVatInclusive / 1.21」にしたい
それに関するアイデアはありますか?
また、モデルが Entity フレームワーク全体である場合はどうなるでしょうか? 上記のアプローチを使用することはできません...いいえ?ViewMODEl または ... に計算コードを配置する必要がありますか?
silverlight - Silverlight プロジェクトで Model-View-ViewModel (MVVM) パターンを使用する必要がありますか?
Silverlight コントロールの課題の 1 つは、プロパティがコードにバインドされると、Blend で実際に編集できなくなることです。たとえば、データ フィードから入力された ListView がある場合、Blend でコントロールを編集しても要素は表示されません。
WPF 開発コミュニティによって考案された MVVM パターンも、Silverlight コントロールを "ブレンド可能" に保つのに役立つと聞いています。私はまだ頭を抱えていますが、ここにいくつかの説明があります:
- http://www.nikhilk.net/Silverlight-ViewModel-Pattern.aspx
- http://mark-dot-net.blogspot.com/2008/11/model-view-view-model-mvvm-in.html
- http://www.ryankeeter.com/silverlight/silverlight-mvvm-pt-1-hello-world-style/
- http://jonas.follesoe.no/YouCardRevisitedImplementingTheViewModelPattern.aspx
潜在的な欠点の 1 つは、パターンが追加のクラスを必要とすることですが、必ずしも追加のコードではありません (上記の 2 番目のリンクで示されているように)。考え?
c# - 明示的なインターフェイスを持つ依存関係プロパティ
私は、開発標準 (依存関係の挿入と明示的なインターフェイスへのオブジェクトの開発) を遵守しようとしながら、WPF の利点を示すために、職場の部門のために WPF デモを作成しています。
今、ちょっとした壁にぶち当たりました。MVVM デザイン パターンを使用してビューを実装しており、ビュー モデル (VM) のプロパティが更新されるたびに TextBlocks Text プロパティを更新する必要があります。このために、VM プロパティを Dependency Property として定義し、View の TextBlocks Text プロパティをそれにバインドします。
これで、MV プロパティがインターフェイス上にあり、(開発基準に従って) 明示的に定義されます。ビューから、ビューの TextBlock の Text プロパティを Dependency Properties プロパティ (静的部分ではない) にバインドしますが、依存関係プロパティの値が変更されたときにビューが更新されません (明示的なインターフェイスにバインドする方法を知っているので、これ私が見る限り問題ではありません)。
どんな助けでも本当に感謝します。明示的インターフェイスで依存関係プロパティを使用できますか? この状況で私に何ができるかについて何かアイデアをお持ちでない場合はどうすればよいですか?
お読みいただきありがとうございます。返信をお待ちしております。
アダム
silverlight - Silverlight-MVVM の優れた実践例
Model-View-ViewModel パターンに関する多くの優れた記事を読みましたが、私のチームはこのパターンをアプリの最新バージョンに実装する予定です。私はまだ、これを機能させるために一緒に行くすべてのビットを完全には得ていません。私がやり遂げることができるこのパターンの良い例を見つけたいと思います。Jason Dolinger がこちらのビデオで行っているように小規模なものですが、ゆっくりとしたペースで自分で作業できるものが欲しいです。
よろしくお願いします。
wcf - モデル - ビュー - ビューモデル & WCF - モデルは WCF ですか?
Model / View / ViewModel パターンとそのバリエーション (DataModel / View / ViewModel、または Model / View / Presenter) を学習しているところです。
私が疑問に思っているのは、このパターンを WCF サービスで使用する場合、サービスはモデル (DataModel) ですか、それとも WCF サービス レイヤーをカプセル化するために別のモデルが必要ですか??
WCF を DataModel として使用すると、WCF への呼び出しで接続を管理する必要があるため、WCF サービス全体をモックしないと ViewModel をテストできません。この ViewModel の呼び出しは次のようになります。
ViewModel をテスト可能にするために、別の DataModel を追加して WCF 接続を抽象化しようとしました。この後、ViewModel はテスト可能になり、呼び出しは次のようになりました。
問題: テストが必要なコードのほとんどが DataModel に移動されており、ここでも WCF をテストする必要がありました。ViewModel に残っていたのは、テスト可能な薄いシェルでした。しかし、メイン コードが DataModel に移動したため、ViewModel のテストはまったく役に立ちませんでした。
したがって、WCF を使用して別の DataModel レイヤーを View / ViewModel アプリケーションに追加すると、多くの作業が追加されるように見えますが、テスト容易性は向上しません。