私は特定のイベントでデータコンテキストを切り替える予定のユーザーコントロールを持っています。コントロールにはいくつかのテキストボックスとリストビューなどがあります。質問は単にview.DataContext = new viewModel()と言っています。足ります?またはプロパティ変更されたイベントのすべてを発射する必要がありますか? UIコントロールの背後にあるのDataContextはは、ユーザーコントロールのdatacontextをチェイングして、プロパティ変更イベントを発生させますか?
1
A
答えて
1
はい、WPFは自動的にUIバインディングを更新します。ただし、パフォーマンス上の理由から、データコンテキストの変更の範囲を検討する必要があります。コンテキスト変更がフォーム全体に影響する場合、アプリケーションの処理速度が低下する可能性があります。 WPFのプロファイリングツールを使用して、この影響を確認します。
0
はいを変更した場合
おかげで
関連する問題
- 1. ユーザーコントロールのイベントは発生しません
- 2. チェックされた変更イベントが発生していません
- 3. ComboBox OnChangeイベントはコード内のItemIndexプロパティを変更すると発生します
- 4. DialogCellEditor:変更時にイベントを発生させる/プロパティを変更したようにマークする方法
- 5. ObservableCollection内のObservableCollectionは発生しません。コレクションの変更イベント
- 6. Scoped DataContextは間欠的にExecuteReaderエラーを発生させます
- 7. バックボーン変更イベントが発生していません
- 8. プロパティの変更時にBindingList.ListChangedイベントが発生しない
- 9. Aureliaのプロパティとコレクションオブザーバがプロパティを生成しません変更イベント
- 10. SyncFusionのSFAutoCompleteコントロールで変更イベントを発生させる
- 11. 剣道日付ピッカー変更イベントは発生しません
- 12. 要素を取得し、JavaScriptで変更イベントを発生させました
- 13. jQuery 1.7.1 IE8のButtonSetが一貫して変更イベントを発生させない
- 14. C#でイベントを発生させて出力しますか?
- 15. 値が変更されていない場合でも、Hazelcastはリスナーの更新イベントを発生させます。
- 16. オブジェクトをデータベースに保存した後でプロパティ変更イベントを発生させるには
- 17. TComboBoxのITEMINDEXを変更してもOnChangeイベントが発生しません
- 18. 角度ngModelが剣道変更イベントを発生させない
- 19. ng-modelがtextinput変更イベントを発生させない
- 20. jQueryで変更イベントを発生させる方法
- 21. ユーザーコントロールのイベントを発生させる方法で読み込むユーザーコントロールを制御する方法
- 22. コンポーネントのプロパティを変更しても、他のコンポーネントで「変更」は発生しません。
- 23. onItemDisclosureイベントを発生させるとitemtapイベントが発生する
- 24. ASPユーザーコントロールのイベントは、ページのOnLoadCompleteを含む後に発生します
- 25. C#でOutlookアイテム変更イベントが発生しません
- 26. ブートストラップDatetimepicker変更イベントが発生しません。
- 27. エスケープキーを押してRowEditEndingイベントを発生させます。
- 28. 隠し入力が変更されたときにイベントを発生させる
- 29. child_process.spawnはイベントを発生しません
- 30. jqueryで変更イベントが発生したイベントを取得する
私の推測では、DataContextを変更すると、変更されたイベントが発生します。しかし、なぜそれを試してみませんか? – keyboardP
ハ!誰かが言うことを知っていました - 私が話しているように試していますが、前にリファクタリングを全部やり遂げる前に知りたいと思っていました。そして実際に - それは誰かが "はい、それはうまくいくでしょうが、それは悪いアイデアの原因X"なんて何かを言うかもしれないという質問のために他の理由を働かせるかもしれないという事実の外に... – Kenn
それはちょうどそれが頻繁に答えを待つよりも質問のいくつかを試してください:あなたは何をリファクタリングする必要がありますか?一時的なviewModelを作成してテストした後、viewModelを削除することができます。または、2つのviewModelで新しいプロジェクトを作成し、それらの間で切り替えることができます。それが悪い考えであるかどうかについては、誰かがコメントを読まない場合には元の質問にそれを加えてください。 – keyboardP