我正在玩测试Silverlight应用程序。 Web上的其中一个教程使用MainPage对象,其中MainPage是主要的Silverlight类。例如: MainPage mp = new MainPage(); 这一切都很好,但是MainPage XAML有一些我可以在MainPage类代码中访问的控件,例如,我可以使用 txtPhotoUrl.Text; 访问 问题是在创建类MainPage的对象后我无法访问XAML控件 - 我无法在MainPage对象属性列表中看到它们。这是设计还是我错过了什么?
答案 0 :(得分:2)
默认情况下,MainPage控件具有内部访问修饰符。因此,您可以从同一个程序集访问MainPage控件。例如,
MainPage mp = new MainPage();
string text = mp.txtPhotoUrl.Text;
您可以在XAML中使用x:FieldModifier =“[private / internal / public]”属性更改访问修饰符以进行某些控制。例如,
<!-- Accessible only from Code Behind-->
<TextBlock x:Name="txtPhotoUrl" x:FieldModifier="private" />
<!-- Accessible from other assemblies-->
<TextBlock x:Name="txtPhotoUrl" x:FieldModifier="public" />
答案 1 :(得分:1)
标识符txtPhotoUrl
是指具有field
可访问性的internal
。因此,要访问它,您的代码将需要在同一个项目中。您可以使用目标probject中的InternalsVisibleTo
属性,以便外部代码可以访问标记为内部的成员,但您的外部代码需要强名称。