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

C# 如何:按内容而不是名称对DataGrid的项进行排序,c#,wpf,sorting,datagrid,C#,Wpf,Sorting,Datagrid,如何:按内容而不是名称对DataGrid的项进行排序 我正在按名称对DataGrid的项目进行排序,但我想使用Content属性对它们进行排序。请参见最后一行: listView_BusinessContacts.Items.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending)); 以下是我的代码,它使用C WPF设置项目: public void SetListViewItems()

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

我正在按名称对DataGrid的项目进行排序,但我想使用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));
    }
我的问题是,按内容排序不起作用

使用名称的输出示例:HelloMyNameIsCompany

使用内容输出示例:您好,我的名字是Company//NOT WORKING

正如您所知,Name属性不允许空白字段,因此我需要替换它们。但我不想替换它们——我想使用内容,但排序不正确。你知道怎么解决吗

提前谢谢

编辑:第一个是txt文件,第二个是应用程序,使用名称和替换方法正确排序


很抱歉隐藏了文本,但该文件中的信息包含业务事项。

强烈建议您删除所有这些可怕的代码,并使用适当的XAML和数据绑定。在任何情况下都不建议也不需要在WPF的过程代码中创建和操作UI元素。正如您所看到的,我需要以这种方式填充它,因为我在运行时填充它。您如何通过读取txt文件来填充数据网格?请发布您需要的屏幕截图和txt文件的示例,我可以告诉您在WPF中执行此操作的正确方法。完成,请参阅上文。谢谢你@例外我建议将文件解析为ObservableCollection,其中SomeClass包含ImageSource、Name和Content的属性,然后使用数据绑定将ListView.ItemsSource绑定到该集合。它更清洁,更易于维护: