как по умолчанию сортировать wpf listview - PullRequest
2 голосов
/ 08 января 2011

Я реализовал сортировку в моем списке просмотра, следуя этой статье .Как получить список по умолчанию для сортировки при открытии окна?Я попытался:

public MainWindow()
        {
            InitializeComponent();
            SortCustomerList("CustomerName", ListSortDirection.Ascending);
        }

... но я получаю "Исключение было сгенерировано целью вызова" ... с внутренним исключением "Ссылка на объект не установлена ​​на экземпляр объектаobject. "

[EDIT] Я переместил вызов для сортировки в загруженное событие, как предложено, но я все еще получаю исключение?Вот как выглядит метод сортировки и загруженное событие:

private void SortCustomerList(string sortBy, ListSortDirection direction)
{
   ICollectionView dataView = CollectionViewSource.GetDefaultView(customersListView.ItemsSource);

   dataView.SortDescriptions.Clear();
   SortDescription sd = new SortDescription(sortBy, direction);
   dataView.SortDescriptions.Add(sd);
   dataView.Refresh();
}

private void mainWindow_Loaded(object sender, RoutedEventArgs e)
{
   SortCustomerList("CustomerName", ListSortDirection.Ascending);
}

Сбой метода Clear ().

Спасибо за любые предложения.

1 Ответ

2 голосов
/ 08 января 2011

Вы не можете получить доступ к элементам управления из конструктора в WPF, они не инициализированы с их данными и т. Д. Я думаю, что вы хотите использовать событие Loaded, но посмотрите здесь другие события жизненного цикла: http://msdn.microsoft.com/en-us/library/ms754221.aspx для получения дополнительной информации.

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