我在XAML中'创建'了一个控件,现在想通过代码后台访问它。
<wincontrols:LiveTileFrameElement Name="PendingAuthsFrame1" Text="Pending" />
this.PendingAuthsFrame1.Text = "334";
但是,我在上述第二条语句中遇到了构建错误,显示MyApp.MainWindow不包含“PendingAuthsFrame1”的定义,也没有扩展方法...
,等等。
我错过了什么或做错了什么?
我在XAML中'创建'了一个控件,现在想通过代码后台访问它。
<wincontrols:LiveTileFrameElement Name="PendingAuthsFrame1" Text="Pending" />
this.PendingAuthsFrame1.Text = "334";
但是,我在上述第二条语句中遇到了构建错误,显示MyApp.MainWindow不包含“PendingAuthsFrame1”的定义,也没有扩展方法...
,等等。
我错过了什么或做错了什么?
使用x:Name
代替Name
。那应该就可以了。
x:Name
是 XAML 语言的一种功能,在代码生成期间映射到后台代码中的字段。在构建过程中,这些内容会被生成到 *.cs.g 文件中。另一方面,Name
是 FrameworkElement 上定义的属性,可以根据控件作者的需要进行处理,它并不总是映射到 XAML 的 x:Name
。有些元素没有 Name
属性。因此,您应该始终使用 x:Name
来为 XAML 和后台代码中的元素命名以便引用 :) - Paweł Motyl