WPF绑定顺序 - 如何更改?

时间:2010-12-28 12:02:01

标签: wpf wpf-controls binding prism

我有一个切换按钮,它将'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>

2 个答案:

答案 0 :(得分:4)

为什么订单很重要?是因为当值为null时,您的转换器不处理这种情况,因为它应该 - 即使它返回Binding.DoNothing。当Tag设置为某个值时,您的IsChecked绑定应该刷新,并且您的转换器应该再次运行。那不是这样吗?

答案 1 :(得分:1)

您可以将此来源(您绑定到Tag的内容)直接绑定到TagIsChecked,然后您IsChecked绑定dependend Tag 1}}并且你不关心竞争条件,你不需要任何订单。