Silverlight XAML中的控件范围

时间:2010-04-22 02:03:41

标签: silverlight xaml

我在UserControl中定义了一个名为MyView的x:Name =“txtMyTextBox”文本框。我注意到我可以做到以下几点:

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

为什么txtMyTextBox可以通过这种方式访问​​?是公共领域还是内部领域?我可以把它私有化吗?

1 个答案:

答案 0 :(得分:2)

Silverlight XAML设计器为命名元素创建字段,以便您可以从后面的代码中访问它们。如果您进入后面的代码,您可以看到生成的文件,并从顶部的方法选择下拉列表中选择InitializeComponent。它保存在部分文件中。在过去,设计师生成的字段已被限制为私有,但由于某种原因,我无法理解,当前的XAML设计师(VS2010,Blend)creates it as internal

您可以使用x:FieldModifier属性更改生成的字段的可见性,但您可能不需要担心它。如果需要,您应该从您的用户控件公开一个包含对它的访问权限的公共属性。