gpt4 book ai didi

c# - 在运行时更改 DataTrigger 绑定(bind)引用

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:13 29 4
gpt4 key购买 nike

我有一个附加了这个 DataTrigger 的 ListView:

<Style x:Key="HideShowStyle" TargetType="{x:Type ListViewItem}">
<Style.Resources>
<localConverters:ShowHideConverter x:Key="ShowHideConverter" />
</Style.Resources>

<Style.Triggers>
<DataTrigger Value="true">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource showHideConverter}">
<Binding Path="EndingDate" />
<Binding Path="UserName" />
<Binding ElementName="SearchBox" Path="Text" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>

<DataTrigger Value="false">
(...)
</DataTrigger>
</Style.Triggers>
</Style>

我在硬编码场景中使用它来隐藏/显示 ListView 中的一些 ListItem。绑定(bind)源在 ElementName 标记中指定,引用的 TextBox 在几行之前声明。
现在,我有必要在运行时用封装在实例化类中的另一个字段更改该绑定(bind)。我试过使用 WPF 类而不是 XAML,但没有,我不知道如何获得它。

我愿意接受任何建议! :)

最佳答案

var style = (Style)FindResource("HideShowStyle");
var trigger = (DataTrigger)style.Triggers[0];
var multibinding = (MultiBinding)trigger.Binding;

var binding1 = (Binding)multibinding.Bindings[0];
var binding2 = (Binding)multibinding.Bindings[1];
var binding3 = (Binding)multibinding.Bindings[2];

随意更改绑定(bind)。

关于c# - 在运行时更改 DataTrigger 绑定(bind)引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5885626/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com