【发布时间】:2011-08-04 09:13:41
【问题描述】:
可能重复:
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 是视图模型 SomeOtherViewModelA 上的依赖属性。
我知道 VisibleTables 返回值,因为它绑定到 SomeOtherViewA 中的其他控件(例如 ListBox)并且它们工作正常。
由于某种原因,我的自定义用户控件中的依赖属性从未设置。我错过了一些明显的东西吗?
【问题讨论】:
-
我也注意到了这种行为,只是假设这与 WPF 引擎和 DP 的机制如何评估 XAML 有关,这就是为什么我不再与 DP 的设置者混淆的原因。有趣的问题,想知道它到底是如何工作的。
-
你的意思是在你的依赖属性 typeof(MyControl) 而不是 typeof(SpyFilterList)
-
是的,我更改了名称以简化我的问题。调整我的帖子,谢谢!
标签: c# .net wpf user-controls binding