ViewModelのフィールドにバインドされたビューのコントロールに依存プロパティがあります。ユーザーがメニュー項目をクリックすると、コントロールがそのプロパティの値を更新してViewModelがXMLファイルに保存できるようにします。 ViewModelのリクエストでViewがそのプロパティを更新するようにする正しいメカニズムは何ですか?ViewModelはWPF/MVVMのビューでどのように更新を要求できますか?
答えて
あなたのオブジェクトは、INotifyPropertyChanged
インタフェースを実装する必要がありますし、あなたの特性はそうプロパティに対して行われたすべての変更は、結合メカニズムを介して表示するカスケード接続されます。この
private string _property;
public string Property
{
get { return _property; }
set
{
if(_property == value) return;
_property = value;
RaisePropertyChanged("Property");
}
}
のようになります。
メニューアイテムのコマンドプロパティは、ビューモデルで宣言されたコマンドにバインドされ、ビューモデルでメソッドをトリガしてプロパティ値を設定します。変更は、ビューにカスケード接続されます。
menuItem.Click - > menuItem.Command.Execute - > viewModel.method - >ビューモデルプロパティを変更 - >プロパティ変更イベントを発生させる - > [ビューのプロパティが結合
を介して変更しました
一般に、MVVMコントロールでは、編集時にすぐにバインドされたプロパティ(フィールドではない)が更新されます。 ViewModelは「状態」であり、ビューはその状態を見る単なる方法です。
あなたがコントロールを編集するときは常にViewModelを更新する必要があります。 ViewModelは、メニューコマンドが呼び出されたときにXMLに保存することができます。
あなたの答えをありがとう。問題は、ビューのデータを取得するにはメソッド呼び出しが必要だということです。このメソッドは、データが必要でない限り通常は呼び出されません。ビューが変更されると、データは自動的に更新されません。 – Beth
正確なシーケンスが何であるかについてはまだ少し不明です。データを取得するのはViewModelです。ビューがある時点でデータ検索をトリガする必要がある場合は、ViewModelでコマンドを公開し、ビュー(OPのメニュー)から呼び出します。 – GazTheDestroyer
ViewModelはビューをトリガしてデータを取得する必要があります。ビューには、メニューアイテムがクリックされてViewModelに返されたときに、コントロール自体のメソッド呼び出しでキャプチャする必要がある状態があります。 – Beth
TextBoxに書き込んだ直後にメニューアイテムをクリックしたときにviewmodelが更新されないという問題がありました。パラメータUpdateSourceTrigger =のPropertyChangedで
は、それがテキストボックスのために働い:<TextBox Grid.Column="5" Grid.Row="7" Text="{Binding SelectedPerson.Room, UpdateSourceTrigger=PropertyChanged}"></TextBox>
しかし残念ながらないDatePickersのための...
奇妙なことである代わりに、メニュー項目のボタンをクリックすると、 DatePickerはviewmodelを更新しています。 私はバグ修正のための時間がありませんので、私はmenuitemをボタンに変更します。
編集:問題はmenuitemではなく、メニュー自体です。私はメニューからmenuitemsを移動すると、それは動作します。
- 1. tomcat要求スレッドをどのようにデバッグできますか?
- 2. ビューはviewcontrollerをどのように更新しますか?
- 3. どのようにlinq要求に変換できますか?
- 4. 更新 - 非同期要求内で同期要求を行うにはどうすればいいですか
- 5. Joomlaではどのようにaws_sdkファイルを要求できますか?
- 6. RecyclerViewをリアルタイムでどのように更新できますか?
- 7. カウントダウン時間はどのように更新できますか?
- 8. AFNetworkingはcurl -vのように要求できますか?
- 9. Tomcat ServerはどのようにPOST要求をキャッシュできますか?
- 10. 更新要求後にビューを変更せずにDivを更新する
- 11. MVVMCrossこのビューはどのようにViewModelにリンクされますか?
- 12. viewModelの変更でビューが更新されない
- 13. ちらちらの更新チェック要求を無効にするにはどうすればよいですか?
- 14. 要求でWSO2のパスワードを更新できません
- 15. viewmodelが更新されたときにビューのテーブルセルが更新されない
- 16. ユーザーが編集/更新要求を提出できるようにする
- 17. ViewModelの2番目のビューは更新されません
- 18. POST要求による行の更新
- 19. どのように私はViewModelに下回っていビュー
- 20. ノード・レスト・クライアント要求をどのようにモックできますか?
- 21. 私はどのように私のココアレポを更新できますか?
- 22. 私は複数行のmysqlをどのように更新できますか?
- 23. 他の人のモジュールをCPANでどのように更新できますか?
- 24. このDjangoビューでHTTPSを要求するにはどうすればよいですか?
- 25. データフレームを参照によってどのように更新できますか?
- 26. ビューでViewModelを参照するにはどうすればいいですか
- 27. pentahoレポートの更新頻度はどのように設定できますか?
- 28. コントロールパネルのUpdatePanelをページからどのように更新できますか?
- 29. AngularJSルート要求などのフレームワークはどのようにするのですか
- 30. PythonがPrestashopの画像を更新するように要求します
私はOPが反対を求めていると思います。 View-> ViewModelではなくViewModel-> View – GazTheDestroyer
GazTheDestroyerは正しいです。 – Beth
私は私の答えを編集しました、私はあなたがそれを行う方法を説明を追加しました。 –