当前位置:  开发笔记 > 编程语言 > 正文

DataTampger中DataConmplate内部控件的Visibility无法正常工作

如何解决《DataTampger中DataConmplate内部控件的Visibility无法正常工作》经验,为你挑选了1个好方法。

我有一个ListBox绑定到List,它有一个DataTemplate为它的项目.除了第二个TextBlock的可见性之外,DataTemplate中的所有内容都能正常工作!我不明白我做错了什么,我不想使用转换器,我已经检查了这些链接:

将Bool绑定到ListBox中的TextBlock的可见性

将Button的可见性绑定到ViewModel中的bool值


                
                    
                        
                            
                                
                                
                                
                                
                            
                            
                                
                            
                            
                            
                            
                                
                                    
                                
                            
                        
                    
                
            

你能告诉我为什么它不起作用吗?!我做了与其他控件完全相同的事情!他们工作,但TextBlock不可见!TextBlock的Visibility属性有问题吗?我已经尝试过FrameworkElement.Visibility,但这也不起作用



1> 小智..:

Visibility="Hidden"你的TextBlock中明确设置是压倒一切的风格一样.首先应用样式,然后最终应用标记属性中的显式赋值.这是有道理的:如果您具有全局TextBlock样式并且在单个TextBlock上设置属性,则需要覆盖这些属性的全局值.

您可能认为触发器在稍后时间,在创建元素并设置属性之后应用Setters,因此它们应该显式覆盖任何设置.但这不是它的工作方式.我对这是否"它应该如何"没有强烈的意见.我可以看到双方.但是直到我习惯了它,它的工作方式对我来说并不直观.

不是将默认可见性应用为属性,而是将其应用于样式中的Setter.触发器的Setter不能覆盖设置相同属性的属性,但它可以覆盖不同的Setter.

它应该如下所示:


    
        
    

您的网格没有在标记上设置背景画笔.如果确实如此,我预计这些触发器也会失败.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有