我在将布尔属性绑定到视图的可见性属性时遇到了一个奇怪的问题。
我有一个“主”视图,其中包含许多其他视图以及各种其他UI元素,包括按钮、文本框、网格、堆栈面板和一些telerik控件。其中一些控件将它们的可见性绑定到我的ViewModel上的布尔属性,这样当属性为正时它们就会显示,当为负时它们就会折叠。
<Border Visibility="{Binding IsSectionShown,
Converter={StaticResource BoolToVisibilityConverter}}" >
这对我来说完美地工作。显然,我已经在IsSectionShown
设置器中触发了通知事件,并相应地调整了控件的可见性。
现在我有一个视图需要调整其可见性。明显的实现方法是:
<vw:ActivityView DataContext="{Binding Activity}"
Visibility="{Binding IsPositive,
Converter={StaticResource BoolToVisibilityConverter}}" />
无法工作!我的解决方法是将视图包装在 StackPanel 中,并调整 StackPanel 的可见性 - 这样可以正常工作:
<StackPanel Visibility="{Binding IsPositive,
Converter={StaticResource BoolToVisibilityConverter}}">
<vw:ActivityView DataContext="{Binding Activity}" />
</StackPanel>
有什么想法是为什么会发生这种情况吗?解决方法可以,但我希望能够确定我理解上的差距。