我有一个全景控件,我在其中创建了一个标题模板,用于在其中添加列表选择器。 (就像民众中心选择社交账户一样)
<DataTemplate x:Key="PanoramaItemHeaderTemplate">
<ContentPresenter>
<StackPanel Height="129">
<TextBlock Text="{Binding}" FontSize="72" Margin="0,7,0,0" />
<toolkit:ListPicker x:Name="listPick" Margin="0,-21,0,0" BorderThickness="0">
<toolkit:ListPickerItem Content="twitter"></toolkit:ListPickerItem>
</toolkit:ListPicker>
</StackPanel>
</ContentPresenter>
</DataTemplate>
全景控件位于MainPage.xaml文件中,我希望能够从后面的代码访问listpicker,以便能够填充它,并处理它的选择事件。
我不知道该怎么做。我尝试将x:name属性添加到列表选择器中,我无法在后面的MainPage代码中访问它。
非常欢迎任何有关如何处理此事的想法,谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
您无法通过x:Name访问ListPicker,因为它不是明确的:为Panorama中的每个PanoramaItem生成了一个ListPicker。所以第一个问题是,它真的是你想要做的吗?如果需要,您需要使用绑定(ItemSource)
填充它答案 2 :(得分:0)
您可以访问其他资源中的元素,请考虑以下示例:
<Grid Name="myGrid">
<StackPanel x:Name="stack1">
<TextBlock x:Name="abc"/>
</StackPanel>
</Grid>
默认情况下,我们只能在代码中访问Grid
myGrid。要获得对StackPanel
的引用,我们可以这样做:
StackPanel myStack=myGrid.FindName("stack1") as Stackpanel;
之后我们可以参考TextBlock
:
TextBlock myTextBlock=myStack.FindName("abc") as TextBlock;
您可以根据需要修改myTextBlock。您可以在您的情况下应用相同的技术,它将起作用。 希望有所帮助:)。