2009-12-14 84 views
3

當我在WPF中創建一個用戶控件時,看起來這個控件的所有子控件都被聲明爲內部控件?我無法驗證這一點,也沒有找到任何資源來討論這個問題。由於訪問修飾符無法訪問兒童控件

我可以訪問相同程序集中的控件,但不能訪問引用用戶控件所在程序集的項目。有沒有辦法在XAML中覆蓋子控件的默認訪問修飾符,所以我不需要通過用戶控件中的屬性手動公開控件?

回答

9

您是否試圖將子控件的x:FieldModifier屬性設置爲「public」?

+0

工作就像一個魅力。 – 2009-12-15 23:16:02

1

但是,只是把它們公諸於衆,不是一個好主意 - 它的設計非常糟糕。

你應該通過你的UserControl的屬性公開他們的真實數據。最好的事情是引入一個接口。

另一種解決方案(更多的「WPF方式」)將使用數據上下文作爲從外部訪問的唯一屬性:控件可以綁定到他們需要的屬性。