問題タブ [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.

0 投票する
8 に答える
85076 参照

wpf - WPF MVVMアプリケーションのキーボードイベント?

コード ビハインドを使用せずに Keyboard.KeyDown イベントを処理するにはどうすればよいですか? MVVM パターンを使用して、コード ビハインド ファイルにイベント ハンドラーを記述しないようにしています。

0 投票する
5 に答える
3619 参照

wpf - WPF/XAML で厳密に型指定されたバインディングを取得できますか?

MVVMパターンを使用して、DataContext を特定の ViewModel に設定します。バインディングを検証するために、XAML に DataContext の型を伝える方法はありますか?

ASP.NET MVC で型指定されたビューデータのようなものを探しています。

0 投票する
3 に答える
1579 参照

silverlight - Silverlight MVVM リンク モデルとビュー モデル

MVVM には素晴らしい例がたくさんありますが、私はまだ混乱しています。

CustomerModel と CustomerViewModel があるとします。CustomerModel に Name プロパティがあり、CustomerViewModel に 1 つあるようです。UI が更新されるように、CustomerViewModel のセッターは CustomerModel Name プロパティを設定し、OnPropertyChanged(PropName) を呼び出します。これは本当に正しいですか?ゲッター/セッターが2回定義されるようです。50 個のプロパティを持つモデルがある場合、それは非常に面倒です。

また、Qty プロパティを設定するとします。ViewModel はモデルを更新します。Model は、新しい Qty に基づいて Value プロパティを更新します。Model プロパティが変更されたことを ViewModel に通知するにはどうすればよいですか?

0 投票する
3 に答える
566 参照

mvvm - Silverlight MVVM ヘッダーの詳細

だから、OrderModel と OrderViewModel があるとしましょう。ビューモデルとモデルの両方にサプライヤー、注文日などのプロパティがあり、それらはリンクされています。これに関する例を見て、セッター/ゲッターを書くという点で多少重複していますが、十分に簡単に思えます。

OrderDetails をどうすればよいでしょうか。私のモデルでは、リストがあります。

OrderDetail の OrderDetailViewModel はありますか? もしそうなら、OrderViewModel はそれをどのように提供しますか? ObservableCollectionとして?もしそうなら、どうやってそれを元のリストと同期させますか?

これは、まともな例を見たことがないところです。誰かが私に指摘できるものがあれば、私はそれを感謝します. 私はMVVMの概念に嘘をついていますが、オーバーヘッドが非常に大きいことに気付き始めています。ViewModel でモデル パーツも処理しないのはなぜですか。日々の LOB アプリでは、真の MVVM が必要と思われるすべてのコードを保証するために、この 2 つの間に実際にそれほど大きな違いがあるのでしょうか?

0 投票する
6 に答える
11259 参照

c# - MVVM WPF の ICommand

私はこのMVVMのものを見ていますが、問題に直面しています。

状況は非常に単純です。

index.xaml ページに次のコードがあります。

そして私のindex.xaml.csで

...

InitializeComponent(); base.DataContext = new MovieViewModel(ent.Movies.ToList()); ....

ここに私のMoveViewModelがあります

最後に

ここに私のコントロールxaml MovieViewがあります

したがって、私が抱えている問題は、ItemsSource を Binding に設定した場合です。

それは何もしません

ItemsSource="{Binding lm}" を設定した場合

それは私のitemsControlに値を設定しますが、コマンド(Command="{Binding Path=TestCommand}")は機能しません。

もちろん、TestCommand は私のエンティティ オブジェクト Movies に属していないため、機能しません。

最後に私の質問は、

ItemsControl を機能させるには何を渡す必要がありますか?

事前にThx

0 投票する
4 に答える
17061 参照

c# - WPFUserControlにICommandをアタッチします

画像を含むシンプルなボタンを実装しました。

ご覧のとおり、このUserControlにICommandをアタッチできるようにするために、ButtonCommandプロパティを公開しています。

次に、ボタンを宣言すると、次のようになります。

<uc:ImageButton Grid.Row="1" Grid.Column="0" ButtonCommand="{Binding AttachContextCommand}" ButtonImage="{StaticResource AssociateImage}" ButtonText="Associer"/>

そしてbadaboom、ImageButtonをクリックしても何も起こりません。ImageButtonを単純なボタンに置​​き換えると、ICommandが呼び出されます。

Buttonクラスを拡張してICommandをバインドしようとしましたが、もう一度、機能しませんでした...

感謝します!

どうも。

0 投票する
5 に答える
969 参照

wpf - ViewModel は、サービスのデータがいつ更新されたかをどのように知ることができますか?

私のアプリケーションには、単一のサービス (リポジトリ、DAO など) を持つ複数の ViewModel があります。これをWidgetServiceと呼び、それらに注入します。

これらの ViewModel の 1 つが、すべてのユーザー ウィジェットのリストであるとしましょう。もう 1 つは、これらのウィジェットの 1 つを編集/作成するための ViewModel です。

ユーザーは、WidgetListViewModel に基づく WidgetListView でウィジェットのリストを表示しボタンクリックして新しいウィジェットを追加できます。この新しいウィジェットを作成するために、CreateWidgetViewModelが新しく作成され、一部の UserControl/Window の DataContext に挿入されます。したがって、CreateWidgetViewCreateWidgetViewModelを表示する DataTemplates の魔法を使用します。また、CreateWidgetViewModelの新規作成は、必ずしもWidgetListViewModelのスコープ内で行われるとは限りません。

WidgetListViewModelの場合、WidgetServiceのインスタンスが注入されました。CreateWidgetViewModelには、この同じWidgetServiceインスタンスが挿入されました。

ここで、ユーザーがCreateWidgetViewで保存をクリックすると、 WidgetServiceSaveメソッドが呼び出され、ウィジェットが永続化されます。ここで、WidgetListViewModelに、表示する新しいウィジェットがあることを通知する必要があります。

長いビルドアップは、次の質問につながります:新しいウィジェットを表示する必要があることをWidgetListViewModelに知らせるにはどうすればよいですか?

Microsoft の担当者が、ViewModel がサブスクライブしているサービスのイベントを使用して、この種のことを行っているビデオを見たことがあります。ただし、これの欠点は、サービスがビューモデルよりも長く存続する場合、サービスがGCされるまでビューモデルがGCされないことです。ViewModel に IDisposable を追加できます。しかし、ViewModel が DataTemplates を介して UI でのみ表現されている場合、いつ/どのように Dispose を呼び出すのでしょうか?

これに関する提案はありますか?

明確にするために、MVVM の私の解釈は Josh Smith の解釈に最もよく似ていると言えます。少なくとも、私の MVVM アーキテクチャは Crack.Net ソースにあるものとほぼ一致しています。

0 投票する
4 に答える
52791 参照

mvvm - MVVM ルーティングおよびリレー コマンド

RoutedCommandRelayCommandの違いは何ですか? RoutedCommand をいつ使用し、MVVM パターンで RelayCommand を使用するのはいつですか?

0 投票する
3 に答える
1462 参照

apache-flex - MVVM - 何を含むべきか... 何を作成すべきか

私は、MVVM パターンを使用してすべてがどのように適合するかについて頭を悩ませています。実際にはすべて非常に単純に思えますが、それを実装しようとすると、コーディングしようとする他のさまざまなルールに違反しているようです。

余談ですが、Silverlight や WPF ではなく、Flex を使用してパターンを実装しようとしています。そのため、これを行うべきではない正当な理由がある場合は、それを聞いてみたいと思います。

複数のビューがあるという問題があります。ページに同時に 2 つのビューを表示しなければならない場合があります。時々、単一のビューに戻ります。私の通常の Flex 脳では、他のすべてのビュー (コード ビハインドと同様) を含むコード ビハインドを含むメイン ビューがあります。そのメイン ビューは、他の個々のビューの切り替えを行います。

これを MVVM に実装しようとするとViewsViewModels. ViewModelアプリケーション全体の状態とApplicationViewそのデータへのバインドを作成し、サブビューのすべての切り替えを行うとし ましょう。

では、サブビューのビュー モデルをどこに作成すればよいでしょうか。の中で試してみましたが、うまくいきませApplicationViewんでした。そして、アプリケーションビューの外で試して、そのインスタンスを渡してからApplicationView、サブモデルをそれにバインドしました。何か不足していますか?これらの方法はどれも、これを分離しようとする全体のポイントに適合していないようです。

この問題を説明している良い本やリンクは大歓迎です。

乾杯、ジェームズ

0 投票する
3 に答える
5554 参照

silverlight - Prism 2 SL : ボタンがクリックされたときにリージョンからビューを削除する

私は Prism を初めて使用し、Prism 2 アプリケーションでビューを非アクティブ化するためのベスト プラクティスを決定しようとしています。ユーザーがビューのボタンをクリックすると、ビューを非アクティブ化します。ボタンがクリックされると、ビューはコマンドを実行しています。

ビュー モデルはコマンドを受信して​​いますが、ビューモデルにはリージョン マネージャーへの参照がありません。

ビュー モデルはリージョン マネージャーについて認識している必要がありますか? また、ビューモデルがそれへの参照を持っていたとしても、それを含む領域の非アクティブ メソッドにビュー インスタンスを渡す必要があります。

アプリに MVVM パターンを使用しています。