C# 单个ListView中的多列表
预信息: 我在应用程序中有一个页面,设置如下:C# 单个ListView中的多列表,c#,listview,win-universal-app,uwp-xaml,C#,Listview,Win Universal App,Uwp Xaml,预信息: 我在应用程序中有一个页面,设置如下: <ScrollViewer> <ListView> //Some Grids and simple layout </ListView> <ListView> //Huge nested ListView containing another ListView <ListView> //Fur
<ScrollViewer>
<ListView>
//Some Grids and simple layout
</ListView>
<ListView>
//Huge nested ListView containing another ListView
<ListView>
//Further nesting with grids and layout
</ListView>
</ListView>
<ListView>
//Some Grids
</ListView>
</ScrollViewer>
public class Activity
{
public string Description { get; set; }
public IList<NotImportantClass> NotImportantClass{ get; set; }
public string Comment { get; set; }
}
public class BaseClass
{
public string Title { get; set; }
public IList<Activity> Activities { get; set; }
}
public ObservableCollection<BaseClass> BindingSource
//一些网格和简单布局
//包含另一个ListView的巨大嵌套ListView
//使用网格和布局进一步嵌套
//一些网格
我使用MVVM,我用来绑定的对象最简单的是这样的:
<ScrollViewer>
<ListView>
//Some Grids and simple layout
</ListView>
<ListView>
//Huge nested ListView containing another ListView
<ListView>
//Further nesting with grids and layout
</ListView>
</ListView>
<ListView>
//Some Grids
</ListView>
</ScrollViewer>
public class Activity
{
public string Description { get; set; }
public IList<NotImportantClass> NotImportantClass{ get; set; }
public string Comment { get; set; }
}
public class BaseClass
{
public string Title { get; set; }
public IList<Activity> Activities { get; set; }
}
public ObservableCollection<BaseClass> BindingSource
公共课堂活动
{
公共字符串说明{get;set;}
公共IList NotImportantClass{get;set;}
公共字符串注释{get;set;}
}
公共类基类
{
公共字符串标题{get;set;}
公共IList活动{get;set;}
}
公共可观测集合绑定源
我正在为UWP开发应用程序,嵌套ListView的性能非常糟糕。使用服务器中的元素进行调试后,放置的元素超过4000个。
我确实读过一些关于WPF分组列表视图的内容,但我所看到的大多数讲座和文章都只是用一个列表来处理它,并使用了一个基于该列表的键
Title属性可以用作键,我只需要一些聪明的方法来使用linq或其他东西来使用分组ListView。关于如何处理此问题的任何建议?通常当您将任何
项控件
像您的列表视图
放在滚动查看器
中时-它会消除列表控件的虚拟化。只需将ScrollViewer
中的三个ListView
替换为单个ListView
,并将ItemTemplateSelector
绑定到选择器处理的不同类型项的单个串联列表,就可以恢复虚拟化并使一切顺利进行。总的来说,嵌套可滚动列表控件对用户和性能都不好。将它们嵌套在ScrollViewer
中需要设置YesiknowWhatimDoingand StillWantDoit
标志,然后才能允许,因为这几乎不是一个好主意