WPF UserControl依赖项属性设置程序未触发

本文关键字:程序 设置 属性 UserControl 依赖 WPF | 更新日期: 2023-09-27 17:49:47

可能重复:
WPF:XAML属性声明不是通过Setters设置的?

我陷入了一个看似愚蠢的问题。

我有一个用户控件,MyControl.xaml,MyControl.xsaml.cs定义了一个公共依赖属性:

public static readonly DependencyProperty VisibleItemsProperty =
    DependencyProperty.Register("VisibleItems", typeof(object), typeof(MyControl));
public object VisibleItems
{
    get { return (object)GetValue(VisibleItemsProperty); }
    set { SetValue(VisibleItemsProperty, value); }
}

在另一个视图SometherViewA中,我声明我的控制:

<cc:MyControl VisibleItems="{Binding VisibleTables}"  />

VisibleTables是视图模型SometherViewModelA的依赖项属性。

我知道VisibleTables返回值,因为它绑定到SomeOtherViewA中的其他控件(如ListBox(,并且它们工作正常。

由于某些原因,我的自定义用户控件中的依赖项属性从未设置。我是不是错过了一些显而易见的东西?

WPF UserControl依赖项属性设置程序未触发

我想我刚刚发现了一个重复项。

在MSDN上还有更多关于这方面的信息:

WPF XAML处理器使用属性依赖关系的系统方法加载二进制XAML时的属性以及处理以下属性依赖属性。这有效地绕过了财产包装。实现自定义时依赖属性,必须解释这种行为,并且应该避免在您的属性包装器,而不是属性系统方法GetValue和设置值。

(直接调用SetValue,这些包装器属性只是为了在代码后面方便起见(