【发布时间】:2020-08-06 19:31:15
【问题描述】:
以下只是对问题核心的总结。
我定义了具有一个依赖属性的类如下。
public class TestMap : DependencyObject
{
public bool TestProperty
{
get { return (bool)GetValue(TestPropertyProperty); }
set { SetValue(TestPropertyProperty, value); }
}
public static readonly DependencyProperty TestPropertyProperty =
DependencyProperty.Register("TestProperty", typeof(bool), typeof(TestMap), new PropertyMetadata(false));
}
现在我将在 UserControl 中使用上述类。 以下代码为示例。
public class UserControl1 : Control
{
public TestMap TestMap { get; set; }
}
我在 MainWindow 中使用了 UserControl1,如下所示。
<Window>
<Grid>
<local:UserControl1 />
</Grid>
</Window>
上面的代码运行良好,但是如果我尝试绑定到 TestMap.TestProperty 我应该怎么做? 我尝试了以下代码,但它不起作用。 (假设 ViewModel 已绑定)
<Window>
<Grid>
<local:UserControl1 TestMap.TestProperty="{Binding ViewModelProperty}"/>
</Grid>
</Window>
上述代码的错误信息如下图。
错误信息是 “它找不到‘TestMap’格式的可连接‘TestProperty’属性。”
感谢阅读。
【问题讨论】:
-
您不能绑定到像 XAML 中那样的嵌套属性。也许您应该考虑使用attached dependency property。
-
除了不支持语法之外,
TestMap显然是null,所以没有可以设置 Binding 的对象。TestProperty不在UserControl1中的任何原因?
标签: wpf binding dependency-properties