WPF C1FlexGrid列表刷新后,如何还原选中行?
列表数据选中了第3行,刷新列表(新增一行、删除一行等操作)后想让列表选中的数据还是那条,如何实现?var currentItem = CurrentItem; //当前行
List.Add(new BoardModel());
RaisePropertyChanged(() => List);
CurrentItem = currentItem; //还原当前选中行上图代码没有效果,请帮忙看看,Demo如下
好的。
谢谢提供的Demo,问题收到了,测试后给您反馈。 FlexGrid我们在设计的时候在ItemSource的propertyChanged中加入了一些处理,做重置Selecteditem。所以在添加新行的时候,就会自动选中第一行。
所以根据您的Demo,建议您:
1.把FlexGridViewModel中List类型修改为ObservableCollection<BoardModel>而不是List<BoardModel>
理论上,你在添加一行的时候,不应该触发ItemsSource的PropertyChanged,而是触发ItemSource的CollectionChanged,所以把List修改为ObservableCollection。
2.把ItemSource的binding中IsAsync去掉。IsAsync是异步的,会导致ItemsSource发生改变 :i0tw:非常感谢!!! CanYou8 发表于 2016-6-1 16:51
非常感谢!!!
不客气。
:jy74a:
页:
[1]