我在UserControl中定义了一个名为MyView的x:Name =“txtMyTextBox”文本框。我注意到我可以做到以下几点:
MyView myView = new MyView();
myView.txtMyTextBox.Text = "something";
为什么txtMyTextBox可以通过这种方式访问?是公共领域还是内部领域?我可以把它私有化吗?
答案 0 :(得分:2)
Silverlight XAML设计器为命名元素创建字段,以便您可以从后面的代码中访问它们。如果您进入后面的代码,您可以看到生成的文件,并从顶部的方法选择下拉列表中选择InitializeComponent
。它保存在部分文件中。在过去,设计师生成的字段已被限制为私有,但由于某种原因,我无法理解,当前的XAML设计师(VS2010,Blend)creates it as internal。
您可以使用x:FieldModifier
属性更改生成的字段的可见性,但您可能不需要担心它。如果需要,您应该从您的用户控件公开一个包含对它的访问权限的公共属性。