我有一个ListBox绑定到List,它有一个DataTemplate为它的项目.除了第二个TextBlock的可见性之外,DataTemplate中的所有内容都能正常工作!我不明白我做错了什么,我不想使用转换器,我已经检查了这些链接:
将Bool绑定到ListBox中的TextBlock的可见性
将Button的可见性绑定到ViewModel中的bool值
你能告诉我为什么它不起作用吗?!我做了与其他控件完全相同的事情!他们工作,但TextBlock不可见!TextBlock的Visibility属性有问题吗?我已经尝试过FrameworkElement.Visibility,但这也不起作用
在Visibility="Hidden"
你的TextBlock中明确设置是压倒一切的风格一样.首先应用样式,然后最终应用标记属性中的显式赋值.这是有道理的:如果您具有全局TextBlock样式并且在单个TextBlock上设置属性,则需要覆盖这些属性的全局值.
您可能认为触发器在稍后时间,在创建元素并设置属性之后应用Setters,因此它们应该显式覆盖任何设置.但这不是它的工作方式.我对这是否"它应该如何"没有强烈的意见.我可以看到双方.但是直到我习惯了它,它的工作方式对我来说并不直观.
不是将默认可见性应用为属性,而是将其应用于样式中的Setter.触发器的Setter不能覆盖设置相同属性的属性,但它可以覆盖不同的Setter.
它应该如下所示:
您的网格没有在