2011-12-30 8 views
1

私は特定のイベントでデータコンテキストを切り替える予定のユーザーコントロールを持っています。コントロールにはいくつかのテキストボックスとリストビューなどがあります。質問は単にview.DataContext = new viewModel()と言っています。足ります?またはプロパティ変更されたイベントのすべてを発射する必要がありますか? UIコントロールの背後にあるのDataContextはは、ユーザーコントロールのdatacontextをチェイングして、プロパティ変更イベントを発生させますか?

+2

私の推測では、DataContextを変更すると、変更されたイベントが発生します。しかし、なぜそれを試してみませんか? – keyboardP

+0

ハ!誰かが言うことを知っていました - 私が話しているように試していますが、前にリファクタリングを全部やり遂げる前に知りたいと思っていました。そして実際に - それは誰かが "はい、それはうまくいくでしょうが、それは悪いアイデアの原因X"なんて何かを言うかもしれないという質問のために他の理由を働かせるかもしれないという事実の外に... – Kenn

+2

それはちょうどそれが頻繁に答えを待つよりも質問のいくつかを試してください:あなたは何をリファクタリングする必要がありますか?一時的なviewModelを作成してテストした後、viewModelを削除することができます。または、2つのviewModelで新しいプロジェクトを作成し、それらの間で切り替えることができます。それが悪い考えであるかどうかについては、誰かがコメントを読まない場合には元の質問にそれを加えてください。 – keyboardP

答えて

1

はい、WPFは自動的にUIバインディングを更新します。ただし、パフォーマンス上の理由から、データコンテキストの変更の範囲を検討する必要があります。コンテキスト変更がフォーム全体に影響する場合、アプリケーションの処理速度が低下する可能性があります。 WPFのプロファイリングツールを使用して、この影響を確認します。

0

はいを​​変更した場合

おかげで

関連する問題