これを実現するためにを連鎖Dependency Properties
させることができます。すべてのユーザー コントロールで dp を公開する必要があります。のプロパティをバインドUserControlC
しUserControlB
、次にUserControlA
. このように、プロパティ in が変更されるたびにUserControlC
、プロパティ inUserControlA
も変更されます。
A.xaml.cs
class VewModelA : INotifyPropertyChanged
{
prop TextA {get {return thevalue;} set : set thevalue & RaisePropertyChanged("TextA")}
}
B.xaml.cs
class ViewModelB : INotifyPropertyChanged
{
prop TextB {get {return thevalue;} set : set thevalue & RaisePropertyChanged("TextB")}
}
C.xaml.cs
class ViewModelC : INotifyPropertyChanged
{
prop TextC {get {return thevalue;} set : set thevalue & RaisePropertyChanged("TextC")}
}
A.xaml
<controls:B TextB={Binding TextA, Mode=TwoWay}" />
B.xaml
<controls:C TextC={Binding TextB, Mode=TwoWay}" />
C のテキストが変更されるたびに、バインディングは TextA の値を更新します。そして間違いなく、dp をコントロール テンプレートの対応するビューモデル プロパティにマップする必要があります。