Silverlight 4-Datagrid排序和选择已更改问题
我使用的是Silverlight 4,有一个datagrid,允许用户对行进行排序。在sort column事件中,将触发SelectionChanged事件,并选择datagrid中的初始第一行。是否仍有不触发SelectionChanged事件的情况,或者是否有onSort事件将selectedItem设置为null的情况?这似乎是一个无法通过向SelectionChanged事件添加逻辑轻松解决的问题。我正在做的是从该事件中删除所有代码,并将其放入每行的MouseLeftUpButton事件中。这是它的代码Silverlight 4-Datagrid排序和选择已更改问题,silverlight,silverlight-4.0,Silverlight,Silverlight 4.0,我使用的是Silverlight 4,有一个datagrid,允许用户对行进行排序。在sort column事件中,将触发SelectionChanged事件,并选择datagrid中的初始第一行。是否仍有不触发SelectionChanged事件的情况,或者是否有onSort事件将selectedItem设置为null的情况?这似乎是一个无法通过向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
添加行处理程序对我不起作用。。。但这确实:
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
}