我有一个UserControl嵌套在另一个UserControl中,类似于:
<uc:MyControl1>
<uc:MyControl2 Name="cheese"/>
</uc:MyControl2>
uc:MyControl2包含DP 名称。
在uc:MyControl
1内部,我使用标准属性公开uc:MyControl2
:
public uc:MyControl1 ExposedMyProperty1 {get{return MyProperty1}}
但我仍然无法通过uc:MyControl1
:
<uc:MyControl1 ExposedMyProperty1.Name="Milk">
<uc:MyControl2/>
</uc:MyControl2>
Intellisense仅显示UserControl的属性,但不显示UserControl的派生版本。含义我看到来自UserControl的所有属性,但没有看到我定义的DP。所以看起来我得到的是UserControl而不是uc:MyControl1
。
我在这里错过了什么吗?
答案 0 :(得分:1)
在您的代码示例中,您只公开一个getter而不是一个setter。那可能是你的问题。
试试这个:
public string ExposedMyProperty1 { get {return MyProperty1; } set {MyProperty1 = value;}}
但您的代码示例似乎不完整。因为你说你暴露了DependencyProperty
,你的财产只是一个普通的财产。所以这可能不是你问题的解决方案。
答案 1 :(得分:0)
我找到了问题的答案。答案是:您无法从xaml访问嵌套属性。我不知道WPF不允许这样做的原因是什么..
答案来自this post