3
我希望在任何给定的时刻在DataGrid中选择一些行。我不希望它允许取消选择。如何实现这一目标?如何防止在WPF DataGrid中取消选择?
我希望在任何给定的时刻在DataGrid中选择一些行。我不希望它允许取消选择。如何实现这一目标?如何防止在WPF 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 – 2012-03-01 17:56:13
我期望,因为设置SelectedItem触发选择更改事件,并且不确定没有选择(即e.AddedItems.Count == 0),该分配将触发处理程序无限期。 – 2012-03-01 18:11:27
添加'e.AddedItems.Count == 0'时会发生什么?它工作吗? – 2012-03-01 18:11:54