无法访问嵌套UserControl的属性

时间:2011-05-19 09:09:15

标签: wpf .net-4.0 user-controls

我有一个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

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:1)

在您的代码示例中,您只公开一个getter而不是一个setter。那可能是你的问题。

试试这个:

public string ExposedMyProperty1 { get {return MyProperty1; } set {MyProperty1 = value;}}

但您的代码示例似乎不完整。因为你说你暴露了DependencyProperty,你的财产只是一个普通的财产。所以这可能不是你问题的解决方案。

答案 1 :(得分:0)

我找到了问题的答案。答案是:您无法从xaml访问嵌套属性。我不知道WPF不允许这样做的原因是什么..

答案来自this post