2010-11-22 2 views
1

Я использую Silverlight 4 и имею datagrid, который позволяет пользователям сортировать строки. В событии столбца сортировки запускается событие SelectionChanged и выбирается начальная первая строка в datagrid. Есть ли в любом случае, чтобы событие SelectionChanged не было запущено или у вас есть событие onSort, чтобы установить выбранный элемент равным null?Silverlight 4 - Сортировка Datagrid и SelectionChanged проблема

ответ

2

Эта проблема, которая не может быть легко преодолена путем добавления логики к событию SelectionChanged. Я делаю это удаление всего кода из этого события и помещение его в событие MouseLeftUpButton каждой строки. Вот код, который ...

Private Sub dgrd_LoadingRow(ByVal sender As Object, ByVal e As System.Windows.Controls.DataGridRowEventArgs)  
     AddHandler e.Row.MouseLeftButtonUp, AddressOf ClientGrid_SelectRow 
    End Sub 

    Private Sub ClientGrid_SelectRow(ByVal sender As Object, ByVal e As MouseEventArgs) 
     Dim SelectedRow As DataGridRow = CType(sender, DataGridRow) 

     //SelectedRow.DataContext is equivlent to e.AddedItems(0) in the SelectionChanged Event 

     //Add the SelectionChanged logic here 

    End Sub 
0

Добавление обработчика строк не работает для меня ... но это сделал:

private bool _binding = false; 
private void data_grid_LoadingRow(object sender, DataGridRowEventArgs e) 
    { 
     _binding = true; 
    } 
private void data_grid_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (_binding) 
     { 
      data_grid.SelectedItem = null; 
      _binding = false; 
     } 
     if (data_grid.SelectedItem==null) return; 
     // do something with selected item 
    } 

Thanks to jasonxz found here http://forums.silverlight.net/p/18215/61135.aspx

Смежные вопросы