WPFにおける階層構造を持ったViewModelに対するデータバインディングの仕組み
WPFのデータバインディングについて、特に階層構造を持つViewModelをバインドする場合の仕組みについて教えて下さい。
ViewModel定義
public class Outer : INotifyPropertyChanged {
public Inner Inner { /* get,setのコードは省略 */ }
}
public class Inner : INotifyPropertyChanged {
public string Hoge { /* get,setのコードは省略 */ }
}
XAML
<Window.DataContext>
<vm:Outer/>
</Window.DataContext>
<Grid>
<TextBox Text="{Binding Inner.Hoge}"/>
</Grid>
上記のようなコードであるとき、TextBox
はInner
インスタンスのPropertyChanged
イベントを直接的に監視しているのでしょうか?
それともDataContext
で指定されているOuter
インスタンスのPropertyChanged
イベントを監視しているのでしょうか?