如何:按内容而不是按名称对DataGrid的项目进行排序

时间:2014-05-23 14:25:32

标签: c# wpf sorting datagrid

如何:按内容排序DataGrid的项目,而不是按名称排序

我正在按DataGrid排序Name的项目,但我想使用Content属性对它们进行排序。见最后一行:

listView_BusinessContacts.Items.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));

这是我的代码,使用C#(WPF)设置项目:

public void SetListViewItems()
    {
        int i = 0;
        string[] companies = File.ReadAllLines(@"C:\Users\Companies.txt", Encoding.UTF8);

        string itemName = string.Empty;

        foreach (string company in companies)
        {
            Image image = new Image();
            image.Source = new BitmapImage(new Uri(@"Images\folder.png", UriKind.Relative));
            image.Stretch = Stretch.None;

            Label label = new Label();
            label.Content = companies[i];

            DockPanel.SetDock(image, Dock.Left);
            DockPanel.SetDock(label, Dock.Right);

            DockPanel dockPanel = new DockPanel();
            dockPanel.Children.Add(image);
            dockPanel.Children.Add(label);

            ListViewItem listViewItem = new ListViewItem();
            listViewItem.Content = dockPanel;

            itemName = label.Content.ToString();
            listViewItem.Name = itemName.Replace(" ", "");

            listViewItem.Selected += delegate
            {
                companyContent = label.Content.ToString();
                SetItemsToDataGrid();
            };
            listView_BusinessContacts.Items.Add(listViewItem);
            i++;
        }
        listView_BusinessContacts.Items.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
    }

我的问题是,按Content排序无效。

使用Name输出示例:HelloMyNameIsCompany

使用Content输出示例:Hello My Name Is Company // NOT WORKING!

如您所知,Name属性不允许空白字段,因此我需要Replace它们。但我不想替换它们 - 我想使用Content,但这不能正确排序。你知道吗,如何解决这个问题?

提前致谢。

编辑:第一个是txt文件,第二个是应用程序和CORRECT排序(不幸的是使用NameReplace方法)。

Bild2 Bild1

很抱歉隐藏文字,但该文件中的信息包含业务问题。

0 个答案:

没有答案