我有一个切换按钮,它将'Tag'属性绑定到一个对象。然后我将'IsChecked'属性绑定到它的'Tag'属性。 我的问题是,当窗口加载时,首先调用'IsChecked',然后调用'Tag'。 我怎么能首先绑定'Tag'属性?
<ToggleButton>
<ToggleButton.Tag>
<Bind An Object...>
</ToggleButton.Tag>
<ToggleButton.IsChecked>
<Binding Converter="{StaticResource SomeConverter}" Path="Tag" RelativeSource="{RelativeSource Self}"/>
</ToggleButton.IsChecked>
</ToggleButton>
答案 0 :(得分:4)
为什么订单很重要?是因为当值为null
时,您的转换器不处理这种情况,因为它应该 - 即使它返回Binding.DoNothing
。当Tag设置为某个值时,您的IsChecked绑定应该刷新,并且您的转换器应该再次运行。那不是这样吗?
答案 1 :(得分:1)
您可以将此来源(您绑定到Tag
的内容)直接绑定到Tag
和IsChecked
,然后您IsChecked
绑定dependend Tag
1}}并且你不关心竞争条件,你不需要任何订单。