gpt4 book ai didi

c# - 从代码绑定(bind) Setter.Value

转载 作者:太空狗 更新时间:2023-10-29 20:03:52 25 4
gpt4 key购买 nike

在 XAML 中我可以这样写:

<Setter Property="PropertyName" Value="{Binding ...}" />

我如何在代码中执行此操作?我以前在代码中构建过绑定(bind),但我似乎无法在 Setter 类上找到任何静态 ValueProperty 对象以传递给 BindingOperations.SetBinding()

最佳答案

在 Setter 上设置绑定(bind)时,您根本不需要 BindingOperations。您需要做的就是:

var setter = new Setter(TextBlock.TextProperty, new Binding("FirstName"));

或等效

var setter = new Setter
{
Property = TextBlock.TextProperty,
Value = new Binding("FirstName"),
};

其中任何一个都等同于

<Setter Property="TextBlock.Text" Value="{Binding FirstName}" />

这样做的原因是 Setter.Value 是一个普通的 CLR 属性,而不是 DependencyProperty,因此它不能被绑定(bind)。因此,当您在其中存储 Binding 对象时,XAML 或代码中没有歧义。

当 Setter 实际应用于对象时,如果在 Setter 中找到 Binding,则调用 BindingOperations.SetBinding 的等效项。否则直接设置该属性。

关于c# - 从代码绑定(bind) Setter.Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3030679/

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