我希望在DataGrid中随时选择某一行。我不想允许取消选择。如何实现?
XAML
<DataGrid SelectionMode="Single" SelectionChanged="DataGrid_SelectionChanged">
...
</DataGrid>
C#
private void DataGrid_SelectionChanged(
object sender,
SelectionChangedEventArgs e)
{
DataGrid g = sender as DataGrid;
if (g != null &&
e.AddedItems.Count == 0 &&
e.RemovedItems.Count > 0)
{
this.Dispatcher.BeginInvoke((ThreadStart)delegate
{
g.SelectedItem = (Device)e.RemovedItems[0];
});
}
}
e.AddedItems.Count == 0
,但是当我使用e.RemovedItems.Count > 0
时,它会产生一个无限循环和 StackOverflowException 异常。 - Jader Diase.AddedItems.Count == 0
),那么赋值将无限触发处理程序。 - Damon Warrene.AddedItems.Count == 0
时会发生什么?它能正常工作吗? - Damon Warrene.AddedItems.Count == 0
和this.Dispatcher.BeginInvoke
一起工作。 - Jader Dias