2010-04-22 52 views
2

我已經在UserControl中用x:Name =「txtMyTextBox」定義了一個名爲MyView的文本框。我注意到我可以執行以下操作:Silverlight中的控件範圍XAML

MyView myView = new MyView(); 
myView.txtMyTextBox.Text = "something"; 

爲什麼txtMyTextBox可以通過這種方式訪問​​?它是公共的還是內部的?我可以把它變成私人的嗎?

回答

2

Silverlight XAML設計器爲命名元素創建字段,以便您可以從後面的代碼訪問它們。如果您進入後面的代碼,您可以看到生成的文件,並從頂部的方法選擇下拉列表中選擇InitializeComponent。它保存在部分文件中。過去,設計師生成的字段已被限定爲私有,但由於某些原因,我無法理解,當前的XAML設計師(VS2010,Blend)creates it as internal

您可以更改使用x:FieldModifier屬性生成的字段的可見性,但您可能不需要擔心它。如果您需要,您應該公開您的用戶控件的公用屬性,以代替對其的訪問。