【发布时间】:2012-03-01 16:57:46
【问题描述】:
我希望在任何给定时刻在 DataGrid 中选择某些行。我不希望它允许取消选择。如何实现?
【问题讨论】:
标签: c# .net wpf datagrid selection
我希望在任何给定时刻在 DataGrid 中选择某些行。我不希望它允许取消选择。如何实现?
【问题讨论】:
标签: c# .net wpf datagrid selection
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
e.AddedItems.Count == 0)的情况下,分配将无限期地触发处理程序。
e.AddedItems.Count == 0 时会发生什么?有用吗?
e.AddedItems.Count == 0 和 this.Dispatcher.BeginInvoke