WPF: сортировка списка - PullRequest
2 голосов
/ 26 января 2010

Как мне отсортировать ListBox по двум полям? (В этом случае свойства ApplicationName и InstanceName класса моей модели.)

Ответы [ 2 ]

3 голосов
/ 26 января 2010

Это зависит от вашего источника данных. Вот несколько способов ....

с использованием linq в источнике данных lisbox

из 101 образцов LINQ :

string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
var sortedDigits =
        from d in digits
        orderby d.Length, d
        select d;

используйте CollectionView для своего списка и добавьте SortDescription

ICollectionView myDataView = CollectionViewSource.GetDefaultView(myData);

using (myDataView.DeferRefresh()) // we use the DeferRefresh so that we refresh only once
{
   myDataView.SortDescriptions.Clear();
   if (SortById)
      myDataView.SortDescriptions.Add(new SortDescription("ApplicationName", direction));
   if (SortByName)
         myDataView.SortDescriptions.Add(new SortDescription("InstanceName", direction));
}
2 голосов
/ 26 января 2010

вы можете попробовать добавить оба поля в элементы списка SortDescription коллекция, что-то вроде этого:

listBox1.Items.SortDescriptions.Add(new SortDescription("ApplicatonName", ListSortDirection.Descending));
listBox1.Items.SortDescriptions.Add(new SortDescription("InstanceName", ListSortDirection.Descending));

Код выше должен сортировать элементы списка в порядке убывания по полям ApplicatonName и InstanceName

надеюсь, это поможет, с уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...