WPF UserControl 依赖属性设置器未触发

Son*_*oul 5 .net c# wpf binding user-controls

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

我被困在看似愚蠢的问题上。

我有一个用户控件 MyControl.xaml,并且 MyControl.xaml.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); }
}
Run Code Online (Sandbox Code Playgroud)

在另一个视图 SomeOtherViewA 中,我声明我的控件:

<cc:MyControl VisibleItems="{Binding VisibleTables}"  />
Run Code Online (Sandbox Code Playgroud)

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

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

由于某种原因,我的自定义用户控件中的依赖属性从未设置。我错过了一些明显的东西吗?

H.B*_*.B. 4

我想我刚刚找到了一个重复的

MSDN 上还有更多相关信息:

加载二进制 XAML 并处理依赖属性的属性时,WPF XAML 处理器使用依赖属性的属性系统方法。这有效地绕过了属性包装器。当您实现自定义依赖项属性时,必须考虑此行为,并且应避免将除属性系统方法 GetValue 和 SetValue 之外的任何其他代码放入属性包装器中。

SetValue直接调用,这些包装器属性只是为了方便后面的代码)