可能重复:
WPF: XAML property declarations not being set via 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); }
}
在另一个视图SomeOtherViewA中,我声明了我的控件:
<cc:MyControl VisibleItems="{Binding VisibleTables}" />
VisibleTables是viewmodel SomeOtherViewModelA上的依赖项属性。
我知道VisibleTables返回值,因为它绑定到SomeOtherViewA中的其他控件(例如ListBox),它们工作正常。
由于某种原因,我的自定义用户控件中的依赖项属性从未设置过。我错过了一些明显的东西吗
答案 0 :(得分:4)
我想我刚刚找到a duplicate。
还有关于此on MSDN的更多信息:
WPF XAML处理器使用属性 依赖的系统方法 加载二进制XAML时的属性 和处理属性 依赖属性。这个 有效地绕过了财产 包装。实现自定义时 依赖属性,你必须 应该考虑这种行为 避免在你的任何其他代码 属性包装除了 属性系统方法GetValue和 的SetValue。
(SetValue
被直接调用,那些包装器属性只是为了方便后面的代码而存在)