You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中编程创建Binding为{Binding}的DataTrigger?

结论

你写的trigger.Binding = new Binding();完全正确,和XAML中的{Binding}效果完全一致。
无参构造的Binding对象默认没有指定Path,就是绑定到当前绑定上下文(DataContext)本身,和你XAML里的Binding="{Binding}"逻辑完全匹配。

完整C#实现代码

// 初始化DataTrigger
var dataTrigger = new DataTrigger
{
    // 等价于XAML的Value="{x:Null}"
    Value = null,
    // 等价于XAML的Binding="{Binding}"
    Binding = new Binding()
};

// 初始化Setter,注意Property参数需要传入对应的依赖属性
// 示例中假设你要设置的是MyControl类的SomeProperty依赖属性
var setter = new Setter
{
    Property = MyControl.SomeProperty,
    Value = SomeValue
};

// 将Setter加入DataTrigger的Setters集合
dataTrigger.Setters.Add(setter);

// 最后将DataTrigger添加到对应控件的Style.Triggers集合中
// 示例:给myControl的Style加触发器
var myControlStyle = new Style(typeof(MyControl));
myControlStyle.Triggers.Add(dataTrigger);
myControl.Style = myControlStyle;

补充说明

如果你需要绑定到DataContext下的某个属性而非整个DataContext,才需要给Binding指定Path参数,比如等价于{Binding UserName}的写法是new Binding("UserName")。

内容的提问来源于stack exchange,提问作者Themelis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:36:00