c# – 在WPF中设置DataTrigger时遇到问题

c# – 在WPF中设置DataTrigger时遇到问题,第1张

概述我在主视图上有一个ComboBox和一个Button,我想在按钮上应用一个样式,这样当组合框索引设置为1时,按钮变为可见(最初它是隐藏的).这是我的XAML代码: <Grid> <StackPanel Orientation="Vertical" Margin="10"> <ComboBox Name="comboBox"/> <Button Name=" 我在主视图上有一个ComboBox和一个button,我想在按钮上应用一个样式,这样当组合框索引设置为1时,按钮变为可见(最初它是隐藏的).这是我的XAML代码:
<GrID>    <StackPanel OrIEntation="Vertical" margin="10">        <ComboBox name="comboBox"/>        <button name="myBtn" Content="Hello" Visibility="HIDden">             <button.Style>                 <Style targettype="{x:Type button}">                     <Style.Triggers>                         <DataTrigger Binding="{Binding Elementname=comboBox,Path=Selectedindex}" Value="1">                             <Setter Property="Visibility" Value="Visible"/>                          </DataTrigger>                      </Style.Triggers>                  </Style>              </button.Style>         </button>     </StackPanel></GrID>

有人已经问了一个关于这个here的问题,而且我做了几乎相同的事情,但它不起作用,即使索引更改为1,按钮仍然隐藏.最初在后面的代码中填充了comoBox有2件物品.任何帮助表示赞赏.

解决方法 问题是本地设置的依赖项属性值(就像您使用可见性一样)具有比样式触发器设置的优先级更高的优先级.因此,即使触发器被触发,它也不会覆盖您已经设置的值.

简单的解决方案是在样式Setter中设置默认值:

<button name="myBtn" Content="Hello">         <button.Style>             <Style targettype="{x:Type button}">                 <Setter Property="Visibility" Value="HIDden"/>                 <Style.Triggers>                     <DataTrigger Binding="{Binding Elementname=comboBox,Path=Selectedindex}" Value="1">                         <Setter Property="Visibility" Value="Visible"/>                      </DataTrigger>                  </Style.Triggers>              </Style>          </button.Style>     </button>

现在,您的触发器会在命中时覆盖属性值.

当你在它时,你应该看一下this link,它列出了设置DP值的优先顺序.

总结

以上是内存溢出为你收集整理的c# – 在WPF中设置DataTrigger时遇到问题全部内容,希望文章能够帮你解决c# – 在WPF中设置DataTrigger时遇到问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1239742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存