首先一条特别重要的是:
在HubSection中的控件是无法在代码中直接访问的。
<HubSection Width="800" x:Uid="Section1Header" Header="Header">
<DataTemplate>
<ListView x:Name="listview">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBox Text="{Binding text}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</DataTemplate>
</HubSection>
这样一个ListView如果你像平常一样在代码里
listView.ItemsSource = someObservableCollection;
会报错The name ‘listView’ does not exist in the current context
一个非常简单的解决办法是在ListView里添加Loaded事件函数。
<ListView x:Name="listview" Loaded="ListView_Loaded">
然后添加函数
private void NotificationList_Loaded(object sender, RoutedEventArgs e)
{
var listView = (ListView)sender;
listView.ItemsSource = someObservableCollection;
}
总感觉应该有更好的方法。