Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ListView排序中排除项_C#_Wpf_Listview_Sorting - Fatal编程技术网

C# 从ListView排序中排除项

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

我使用WPF ListView来显示数据。我创建了数据模型[用作ListView的DataContex],其中包含一个成员:

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非常有效。非常好,这就是我需要的。谢谢