C# 从ListView排序中排除项
我使用WPF ListView来显示数据。我创建了数据模型[用作ListView的DataContex],其中包含一个成员:C# 从ListView排序中排除项,c#,wpf,listview,sorting,C#,Wpf,Listview,Sorting,我使用WPF ListView来显示数据。我创建了数据模型[用作ListView的DataContex],其中包含一个成员: private CollectionViewSource itemEntryInfosView; ListView的ItemsSource设置为ItemEntryInfo视图。比如说,ItemEntryInfo视图中充满了从数据库下载的数据 为了[afer column click]对数据进行排序,我编写了以下方法: public void SortList_O
private CollectionViewSource itemEntryInfosView;
ListView的ItemsSource设置为ItemEntryInfo视图。比如说,ItemEntryInfo视图中充满了从数据库下载的数据
为了[afer column click]对数据进行排序,我编写了以下方法:
public void SortList_OnExecuting(object parameter)
{
var sortColumn = (string)parameter;
this.itemEntryInfosView.SortDescriptions.Clear();
if (this.sortAscending)
{
this.itemEntryInfosView.SortDescriptions.Add(
new SortDescription(sortColumn, ListSortDirection.Ascending));
this.sortAscending = false;
}
else
{
this.itemEntryInfosView.SortDescriptions.Add(
new SortDescription(sortColumn, ListSortDirection.Descending));
this.sortAscending = true;
}
}
假设ItemEntryInfo视图的源是由ItemEntry类(具有一些公共属性的简单类,ListView为每个属性定义列)参数化的ObserverableCollection
一切都像chram一样工作,但我需要添加一个功能。我需要一个表示“添加新行”之类内容的特殊行。我认为这样一行可以从ItemEntry继承应将该行排除在排序之外。(假设该行应始终位于ListView的末尾)。如何实现这样的功能 >一个选项可能是考虑一个为您提供功能的第三方控件。例如,包含一个。您可以使用
复合集合
:
<ListView>
<ListView.ItemsSource>
<CompositeCollection>
<ListBoxItem Content="Add New" />
<CollectionContainer Collection="{Binding Source={StaticResource ItemEntryInfosView}}" />
</CompositeCollection>
</ListView.ItemsSource>
</ListView>
WPF 4也包含了代码/>代码> DATAGRID。如果所有其他的都失败了,我会考虑使用它。我希望还有其他解决方案,我恐怕没有时间用DataGrid替换ListView(嗯,也许不是那么难吧?)第二件事-我不需要添加新行。我用它的例子来说明需要实现什么。在我的例子中,我需要执行不影响当前项目的方法(不多)。如果您只需要一个按钮,为什么不将它添加到DokPant或列表中的列表之上?请考虑文件管理器。其中大多数在列表顶部包含“Go folder up”条目。我需要类似的效果。总之,在这种情况下,CompositeCollection非常有效。非常好,这就是我需要的。谢谢