2016-05-09 2 views
0

は、誰もが...バインディング式がOneWayモードで切り離されるのはなぜですか?最初のバインディング式を外した理由を私はcheckBox3オブジェクトをクリックした後

<StackPanel> 
    <CheckBox x:Name="chackBox1" Content="CheckBox1" 
     IsChecked="{Binding ElementName=chackBox2, Path=IsChecked, Mode=OneWay}" /> 
    <CheckBox x:Name="chackBox2" Content="CheckBox2" IsChecked="False" /> 
    <CheckBox x:Name="chackBox3" Content="CheckBox3" 
     IsChecked="{Binding ElementName=chackBox1, Path=IsChecked, Mode=TwoWay}" /> 
</StackPanel> 

を私に説明してもらえます...それは...次のシナリオでは発生しません

<StackPanel> 
    <CheckBox x:Name="chackBox1" Content="CheckBox1" 
     IsChecked="{Binding ElementName=chackBox2, Path=IsChecked, Mode=TwoWay}" /> 
    <CheckBox x:Name="chackBox2" Content="CheckBox2" IsChecked="False" /> 
    <CheckBox x:Name="chackBox3" Content="CheckBox3" 
     IsChecked="{Binding ElementName=chackBox1, Path=IsChecked, Mode=TwoWay}" /> 
</StackPanel> 
モードは、第一の結合式で双方向に変更され

...?

私は説明を求めています。私はそのトリッキーな状況を省略する方法を知っており、バインディング式をデバッグする方法を知っています。私は、同様のポストhereが見つかりましたが、私の一般的な問題に対する明確な答えはありません。

+0

OneWayToSourceを必要とする結合OneWayのではなく、その後(checkbox2を更新する)CheckBox1を設定したい場合は、 'OneWay'は通常、一方向にしか動作しますバインディングとしてTextBlock''で使用され、それはからですソース - > UIElement。 – XAMlMAX

答えて

0

はあなたの最初のシナリオでは、CheckBox1をバインディングOneWay持っているので、checkbox2経由除いて、その値への変更を受け入れることはできません。 checkbox3がcheckbox1を設定しようとすると、バインディングが無効になり、生の値として設定されます。

あなたはcheckbox3あなたが

関連する問題