Silverlight 4 - сортировка данных и проблема SelectionChanged - PullRequest
1 голос
/ 22 ноября 2010

Я использую Silverlight 4 и у меня есть сетка данных, которая позволяет пользователям сортировать строки.В случае события столбца сортировки происходит событие SelectionChanged, и выбирается начальная первая строка в сетке данных.В любом случае, чтобы событие SelectionChanged не было запущено или имеется событие onSort для установки selectedItem на ноль?

Ответы [ 2 ]

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

Похоже, что это проблема, которую нелегко решить, добавив логику в событие 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 голосов
/ 15 сентября 2011

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

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
   }

Благодаря jasonxz, найденному здесь http://forums.silverlight.net/p/18215/61135.aspx

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