2011-05-19 27 views
0

的財產我有一個用戶控件嵌套在另一個用戶控件中,這樣的事情:無法訪問嵌套的用戶控件

<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> 

智能感知顯示的用戶控件的唯一屬性,但而不是我的派生版UserControl。含義我看到來自UserControl的所有屬性,但沒有看到我定義的DP。所以它看起來像我得到一個UserControl而不是uc:MyControl1

我在這裏錯過了什麼嗎?

回答

0

我找到了我的問題的答案。答案是:你不能從你的xaml訪問嵌套的屬性。我不知道什麼是WPF不允許的原因..

答案來自this post

1

在你的代碼示例中,你只暴露了一個getter而不是setter。那可能是是你的問題。

試試這個:

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

但您的代碼示例似乎是不完整的。對於你說你正在公開DependencyProperty,而你的財產只是一個固定的財產。所以這可能不是解決您的問題的方法。

+0

我揭UC的DP:使用非標準特性MyControl2。添加setter並沒有幫助(已經嘗試過)。 – Vitalij 2011-05-19 09:20:08

+0

@Vitalij:你得到什麼錯誤?你能更新你的代碼示例以更完整嗎? – 2011-05-19 09:23:29

+0

對不起!我錯過了兩個非常重要的點,沒有他們的問題沒有多大意義。我剛剛更新了我的問題。 – Vitalij 2011-05-19 09:38:23