0

我正在处理 WPF 中的一个项目,我有一个非常奇怪的案例,涉及我在某个元素上的转换器。

在以下代码段中:

<myCtl:Pager IsTabStop="False" Style="{StaticResource MainPager}"
                DataContext="{Binding CurrentView, Converter={StaticResource SectionToPagerDriver}}"
                Visibility="{Binding CurrentView, Converter={StaticResource SectionToVisibility}}"/>

'DataContext' 的转换器会触发,但'Visibility' 的转换器不会。考虑到它们都绑定到确实发生了变化的“CurrentView”,这对我来说似乎很奇怪。我什至尝试将绑定模式显式设置为“TwoWay”,但这无助于解决问题。

有谁知道为什么一个绑定会触发,而另一个不会触发?

4

1 回答 1

0

当您在 上设置DataContextControl,所有其他绑定都将使用新对象作为它们的源。

如果您检查输出窗口,您将看到一个绑定错误,指出该CurrentView属性返回的任何对象都没有属性。

相反,你应该这样做:

<myCtl:Pager IsTabStop="False" Style="{StaticResource MainPager}"
             DataContext="{Binding CurrentView, Converter={StaticResource SectionToPagerDriver}}"
             Visibility="{Binding Converter={StaticResource SectionToVisibility}}"/>
于 2013-07-02T14:14:28.347 回答