1
我正在做一個贏得10個通用的應用程序,我有對象的兩個數組:UWP開關數據模板 - 重新綁定的ItemSource
private ObservableCollection<Song> Songs;
private ObservableCollection<JonPlaylist> Playlists;
和列表視圖來顯示它們的內部數據:
<Page.Resources>
<DataTemplate x:DataType="data:Song" x:Key="SongDataTemplate">
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="ListSongName" Text="{x:Bind Title}" VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
<TextBlock Name="ListArtist" Text="{x:Bind Artist}" VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
</StackPanel>
</StackPanel>
</DataTemplate>
<DataTemplate x:DataType="data:JonPlaylist" x:Key="PlaylistDataTemplate">
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="ListSongName" Text="{x:Bind Title}" VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</Page.Resources>
列表視圖:
<ListView Name="SongListView" ItemsSource="{x:Bind Songs}" IsItemClickEnabled="True"
ItemClick="SongListView_ItemClick"
ItemTemplate="{StaticResource SongDataTemplate}" />
的問題是,我想要能夠在兩個陣列/集合它們之間進行切換不同的數據類型。
我一直在試圖與該數據模板的頁面資源的開發要實現這一點,並重新綁定listView.ItemSource和listView.ItemTemplate:
private void SwitchViewButton_Click(object sender, RoutedEventArgs e)
{
SongListView.ItemsSource = Playlists[0].GetType();
SongListView.ItemTemplate = this.Resources.ElementAt(1);
}
但是我不知道這是否會工作。利用用戶控件和視覺狀態管理器會更好嗎?
謝謝,改變能見度值現在會做。 – Jon
每當我嘗試操作被拒絕對象的可見性時,我都會收到nullReferenceException。在我可以操縱可見性值之前,是否需要更改負載策略的值?請記住我目前還沒有使用狀態管理器。 – Jon
編輯*我似乎能夠訪問的對象,如果我通過this.FindName找到他們,雖然這似乎非常醜陋,因爲我必須每次intanciate一個新的變量。可以通過視覺狀態管理器找到更乾淨的解決方案 – Jon