gpt4 book ai didi

c# - 为什么 WPF Binding 不调用 PropertyMetadata 中定义的 propertyChangedCallback,而代码隐藏中的 setter 调用?

转载 作者:太空宇宙 更新时间:2023-11-03 16:24:46 25 4
gpt4 key购买 nike

我制作了一个用户控件,并在其中定义了一个依赖属性,如下所示:

public static readonly
DependencyProperty SourceProperty =
DependencyProperty.Register(
"Source",
typeof( ObservableCollection<object> ),
typeof( SingleLineChart ),
new PropertyMetadata(
default( ObservableCollection<object> ),
lineAffectedPropertyChanged ) );

我还有一个普通的属性,把上面的包裹起来。在它的 setter 中,我只是调用 SetValue( SourceProperty, value ); 方法。

当我从代码隐藏文件设置此 Source 时,lineAffectedPropertyChanged 被调用并执行,一切正常;但是当我使用简单的数据绑定(bind)时,什么也没有发生。

        <Line:SingleLineChart
Name="bestFitnessDisplayer"
Source="{Binding Path=bestFitnessHistory}"
Margin="20"/>

我错过了什么?

最佳答案

我知道已经晚了。我想绑定(bind)属性的泛型类型不是对象类型。.Net 无法在 ObservableCollection<object> 的类型之间进行转换和 ObservableCollection<Something> .最好创建不带泛型参数的 IEnumerabe/ICollection 或 IList 类型的 DependencyProperty。

关于c# - 为什么 WPF Binding 不调用 PropertyMetadata 中定义的 propertyChangedCallback,而代码隐藏中的 setter 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12909173/

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