Windows phone 来自c sharp的GridView分组
我需要显示不同的视图,即分组和非分组列表。我用的是GridView 我有两个来自视图模型的列表,一个是用于非分组视图的直接列表,另一个是用于分组视图的列表组Windows phone 来自c sharp的GridView分组,windows-phone,windows-phone-8.1,winrt-xaml,win-universal-app,Windows Phone,Windows Phone 8.1,Winrt Xaml,Win Universal App,我需要显示不同的视图,即分组和非分组列表。我用的是GridView 我有两个来自视图模型的列表,一个是用于非分组视图的直接列表,另一个是用于分组视图的列表组 Lst_Videos = List<VideoItem> - For Non Grouping View Lst_grp = List<VideoGrp> - For Grouping View public Class VideoGrp { public string Key { get; set; } pu
Lst_Videos = List<VideoItem> - For Non Grouping View
Lst_grp = List<VideoGrp> - For Grouping View
public Class VideoGrp
{
public string Key { get; set; }
public int ItemsCount { get; set; }
public List<VideoItem> Items { get; set; }
}
public Class VideoItem
{
public string MediaId { get; set; }
public string PictureTitle { get; set; }
}
它工作得非常好
现在我想点击应用程序栏按钮切换到其他视图。所以我喜欢这个
private void AppBarButton_Click_List(object sender, RoutedEventArgs e)
{
MainGrps.Source = null;
MainGrps.ItemsPath = null;
SharedGriidViewUI.ItemsSource = null;
MainGrps.Source = ((ExtraPageViewModel)this.DataContext).Lst_Videos ;
SharedGriidViewUI.ItemsSource = MainGrps.Source;
SharedGriidViewUI.ItemTemplate = ItmTemplateList;
}
private void AppBarButton_Click_TimeLine(object sender, RoutedEventArgs e)
{
MainGrps.Source = null;
SharedGriidViewUI.ItemsSource = null;
MainGrps.Source = ((ExtraPageViewModel)this.DataContext).Lst_Grp;
MainGrps.ItemsPath = new PropertyPath("Items");
SharedGriidViewUI.ItemsSource = MainGrps.Source;
SharedGriidViewUI.ItemTemplate = ItmTemplateTimeLine;
}
这也很好
现在单击AppBarButton,我想再次显示分组视图。我确实喜欢这个
private void AppBarButton_Click_List(object sender, RoutedEventArgs e)
{
MainGrps.Source = null;
MainGrps.ItemsPath = null;
SharedGriidViewUI.ItemsSource = null;
MainGrps.Source = ((ExtraPageViewModel)this.DataContext).Lst_Videos ;
SharedGriidViewUI.ItemsSource = MainGrps.Source;
SharedGriidViewUI.ItemTemplate = ItmTemplateList;
}
private void AppBarButton_Click_TimeLine(object sender, RoutedEventArgs e)
{
MainGrps.Source = null;
SharedGriidViewUI.ItemsSource = null;
MainGrps.Source = ((ExtraPageViewModel)this.DataContext).Lst_Grp;
MainGrps.ItemsPath = new PropertyPath("Items");
SharedGriidViewUI.ItemsSource = MainGrps.Source;
SharedGriidViewUI.ItemTemplate = ItmTemplateTimeLine;
}
现在我看不到名单了。我得到绑定错误异常
错误:BindingExpression路径错误:“Qts.Models.TimeLineGoup”上未找到“MediaId”属性
错误:BindingExpression路径错误:“Qts.Models.TimeLineGoup”上未找到“PictureTile”属性
这意味着Xaml这次希望Grp Direct中的PictureTile和MediaID而不是组中的Items属性
所以请告诉我哪里错了。如何从cs文件绑定组。请建议或帮助我解决这个问题
感谢并问候Sunil Kumar S C让它工作起来。
我将MainGrps.Source更改为MainGrps.Source.View;
工作很有魅力
MainGrps.Source=((ExtraPageViewModel)this.DataContext).Lst_Grp;
SharedGriidViewUI.ItemsSource=MainGrps.Source.View 成功了。
我将MainGrps.Source更改为MainGrps.Source.View;
工作很有魅力
MainGrps.Source=((ExtraPageViewModel)this.DataContext).Lst_Grp;
SharedGriidViewUI.ItemsSource=MainGrps.Source.View 您可以拥有两个网格视图,并在单击事件上设置其可见性,而不是更改GridView的项目源和其他属性。我认为就性能而言,它不应该比你现在所做的更糟糕。嘿,考虑到两个网格视图,而且玩可见性更糟糕,我相信因为CollectionViewSource不是UI元素,而是资源属性。无论如何,感谢您不要更改GridView的项目源和其他属性,您可以有两个网格视图,并在单击事件上设置它们的可见性。我认为就性能而言,它不应该比你现在所做的更糟糕。嘿,考虑到两个网格视图,而且玩可见性更糟糕,我相信因为CollectionViewSource不是UI元素,而是资源属性。无论如何,感谢您不要更改GridView的项目源和其他属性,您可以有两个网格视图,并在单击事件上设置它们的可见性。我认为就性能而言,它不应该比你现在所做的更糟糕。嘿,考虑到两个网格视图,而且玩可见性更糟糕,我相信因为CollectionViewSource不是UI元素,而是资源属性。无论如何,谢谢