c# - PropertyGroupDescription 未按预期工作

标签 c# wpf

我在 C# WPF 应用程序中使用 LINQ to SQL,并尝试使用 PropertyGroupDescriptionlistview< 进行分组 来自 SQL Server 数据库LastNames

我的 DB LINQ 设计器映射该列如下所示:

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastName", AutoSync=AutoSync.Always, DbType="VarChar(MAX)", IsDbGenerated=true, UpdateCheck=UpdateCheck.Never)]
        public string LastName
        {
            get
            {
                return this._LastName;
            }
            set
            {
                if ((this._LastName != value))
                {
                    this.OnLastNameChanging(value);
                    this.SendPropertyChanging();
                    this._LastName = value;
                    this.SendPropertyChanged("LastName");
                    this.OnLastNameChanged();
                }
            }
        }

数据库中的表名称是Contacts,我认为该表的 linq 代码有点太多,无法发布,所以我给出了名称。

我有一个数据库表的 Observable Collection,我将 ListView 的 itemsource 绑定(bind)到它。

public ObservableCollection<Namespace.Database.Contact> Contacts
        {
            get;
            set;
        }

这是我在使用 PropertyGroupDescription 时尝试和失败的方式

    CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(this.Contacts);
    PropertyGroupDescription groupDescription = new PropertyGroupDescription(this.Contacts.LastName);  //<-- Cant do that
    view.GroupDescriptions.Add(groupDescription);

由于可能会多次出现相同的姓氏,因此我想按它进行分组。

我以为我可以做到上述,但不能:

我已经尝试过:

this.Contacts.Where(x => x.LastName!= null).ToString().FirstOrDefault());

this.Contacts.Select(x => x.LastName!= null).ToString()

我做错了什么?

感谢您的帮助或回复。

最佳答案

使用

CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(this.Contacts);
PropertyGroupDescription groupDescription = new PropertyGroupDescription("LastName");  
view.GroupDescriptions.Add(groupDescription);

相反。

您应该在 PropertyGroupDescription 的构造函数中使用硬编码的属性名称。

关于c# - PropertyGroupDescription 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17820730/

相关文章:

c# - 效率 : Creating an array of doubles incrementally?

c# - 创建文件夹结构,每个文件夹包含 x 个文件

c# - FocusLost 在用户控制 [wpf]

C# - 我无法将我的进程输出转储到文件中

c# - 显式列表转换类型错误?

c# - 在 Visual Studio 2010 中将 Excel 数据导入 DataGridView

c# - 在没有代码隐藏的情况下同步两个 ScrollViewer 之间的偏移量

c# - 如何拥有 IEnumerable<T>.ToObservableCollection()?

wpf - 值 "<"在 PasswordBox 控件的属性中无效

c# - RelayCommand<T> 上的 CanExecute 不起作用