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

时间:2011-04-13 03:29:45

标签: c# .net wpf user-controls binding

  

可能重复:
  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),它们工作正常。

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

1 个答案:

答案 0 :(得分:4)

我想我刚刚找到a duplicate

还有关于此on MSDN的更多信息:

  

WPF XAML处理器使用属性   依赖的系统方法   加载二进制XAML时的属性   和处理属性   依赖属性。这个   有效地绕过了财产   包装。实现自定义时   依赖属性,你必须   应该考虑这种行为   避免在你的任何其他代码   属性包装除了   属性系统方法GetValue和   的SetValue。

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