我有一个LongListSelector,我根据用户的选择根据我收到的数据选择合适的DataTemplate。 我在页面的资源中定义了3个DataTemplates,并在填充我的LongListSelector之前设置了适当的一个 - 使用:
RoutesLongListSelector.ItemTemplate = Resources["SecondItemTemplate"] as DataTemplate;
这些DataTemplates中有一个元素-a StackPanel-我在填充列表后添加了一些子元素。
<StackPanel x:Name="MyStations" Grid.Column="1" Grid.Row="1">
</StackPanel>
因此,当我尝试使用其名称来添加子项[MyStations.Children.Add(...)]时,我收到此错误:“MyStations”在当前上下文中不存在。 我试图在页面的ContentPanel中将其中一个模板设置为默认值,但我仍然遇到同样的错误。
似乎是一个小问题,但我想不出什么。 有什么建议吗?
答案 0 :(得分:1)
您无法使用DataTemplete
属性访问Name
的UI元素,即x:Name
。您可以使用它加载的事件来访问它。请具体说明您的要求。
<StackPanel x:Name="MyStations" Grid.Column="1" Grid.Row="1"
Loaded="MyStations_Loaded" />
private void MyStations_Loaded(object sender, RoutedEventArgs e)
{
var _StackPanel = (StackPanel)sender;
}