2011-03-01 4 views
0

ビューでバインドされているビューモデルに対してAOP操作を実行しようとしています。私はMVVMのいくつかの概念と例を読んだ。 ViewModelの変更をリッスンして自動的にバインドを実行するDataTemplateの使用に気付きました。MVVMでバインドする前に操作を実行するためにオーバーライドするイベント/メソッド

バインドする前にビューモデルを初期化したいのですが、WPF/MVVMでこれを行うにはどうすればいいですか?

ありがとうございました。

結合の方法。 。 。内容やテンプレート

<DataTemplate DataType="{x:Type vm:SampleViewModel}"> 
<vw:SampleDisplayView /> 
</DataTemplate> 

を通じて

データコンテキストを通じ

view.DataContext = viewModel; 

私は、ビューとのviewmodelを傍受し、発生し結合する前にそれらを初期化したいと思います。

更新: DataContextChangedイベントを通じてビューモデルをインターセプトできました。今私は同様に初期化するビューが必要です。

+0

バインド実行前に初期化しますか? – RockWorld

+0

はい:DataContextまたはTemplatesのいずれかでビューをバインドする前に操作を実行したい –

+0

理論的な例を提供できますか。単一のプロパティがバインドされる前に...まあ、準備が整うまでDataContextを設定しない方法で起こります...質問に再び混乱します。 –

答えて

0

これを行う方法が見つかりました。私はViewLocatorを実装しました。ほとんどのツールキットはこれを持っています。

ViewLocatorは添付の動作によって実装され、viewmodelを検索して初期化を行い、それをdatacontextに割り当てます。

関連する問題