DataContext
ホスティングコントロールのをのに設定してみてくださいObject2
。次に、直接バインドできますMyObject
。これは役に立ちますか?もちろん、これはまだ変更を意味しMyCollection
、再評価MyBoolean
もトリガーします。MultiBinding
また、使用しているコンテキストを提供した場合にも役立ちますMultiBinding
(つまり、この戻りテキストはTextBlock
?
編集:
あなたのコメントに応えて、おそらく別の方法があります。3つのマルチバウンドプロパティに個別のPropertyChangedイベントがあると仮定します。MyCollection
アプリケーションで許可されている場合は、これらのイベントをMyBoolean
プロパティからプロパティに移動できMyObject
ます。例えば:
public object MyObject
{
get { ... }
set
{
...
OnPropertyChanged("MyObject");
OnPropertyChanged("MyCollection");
OnPropertyChanged("MyBoolean");
}
}
これはちょっとしたハックだとわかりましたが、これはのMultiBinding
変更時にのみトリガーされますMyObject
。
編集#2:
別のオプションはEventTrigger
、ホスティングコントロールにを追加することです。次に例を示します。
<EventTrigger RoutedEvent="MyObject.TargetUpdated">
<Setter TargetName="yourCheckBox" Property="Value">
<Setter.Binding>
<MultiBinding Converter="{StaticResource MyConverter}">
<Binding Path="MyObject" />
<Binding Path="MyCollection" />
<Binding Path="MyBoolean" />
</MultiBinding>
</Setter.Binding>
</Setter>
</EventTrigger>
ここでの唯一のキャッチはMode=TwoWay
、チェックボックスのバインドを確認することです。
このリンクを参照しました。