gpt4 book ai didi

c# - 银光。绑定(bind)到数据对象的附加属性,未输入getter

转载 作者:行者123 更新时间:2023-11-30 22:33:18 27 4
gpt4 key购买 nike

我正在尝试使用附加属性向我的数据对象添加一些表示逻辑。我即将切换到包装器,但我很好奇为什么以下对我不起作用。表示逻辑类代码为:

    public static readonly DependencyProperty TestPropProperty = DependencyProperty.RegisterAttached(
"TestProp",
typeof(string),
typeof(DataClassPresenter),
new PropertyMetadata("[Test]")
);

public static string GetTestProp(DataClass el)
{
return "Haha"; // (string)el.GetValue(TestPropProperty);
}

public static void SetTestProp(DataClass el, string val)
{
el.SetValue(TestPropProperty, val);
}

我绑定(bind)到属性值的 XAML 是:

     <TextBlock Text="{Binding Path=(prz:DataClassPresenter.TestProp), StringFormat='Depend:\{0\}'}"/>

它有效,但始终显示“[Test]”,永远不会返回“Haha”,也永远不会输入 GetTestProp。我做错了什么?

最佳答案

那是因为你的get方法不能保证被调用。 Silverlight(和 WPF)可以单独使用 DependencyProperty 获取或设置属性值。永远不要在 get 或 set 方法中引入任何逻辑。

另外,您不应该使用 DataClass 作为参数。传递的对象将是您设置附加属性的元素,在您的示例中是一个 TextBlock。因此,您应该让上面的代码接受 DependencyObjectUIElement 而不是 DataClass

关于c# - 银光。绑定(bind)到数据对象的附加属性,未输入getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8360702/

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