CanYou8 发表于 2016-5-30 15:06:55

WPF C1FlexGrid列表刷新后,如何还原选中行?

列表数据选中了第3行,刷新列表(新增一行、删除一行等操作)后想让列表选中的数据还是那条,如何实现?
                  var currentItem = CurrentItem; //当前行

                  List.Add(new BoardModel());
                  RaisePropertyChanged(() => List);

                  CurrentItem = currentItem; //还原当前选中行上图代码没有效果,请帮忙看看,Demo如下


Alice 发表于 2016-5-30 16:02:03

好的。
谢谢提供的Demo,问题收到了,测试后给您反馈。

Alice 发表于 2016-6-1 14:52:58

FlexGrid我们在设计的时候在ItemSource的propertyChanged中加入了一些处理,做重置Selecteditem。所以在添加新行的时候,就会自动选中第一行。

所以根据您的Demo,建议您:
1.把FlexGridViewModel中List类型修改为ObservableCollection<BoardModel>而不是List<BoardModel>
理论上,你在添加一行的时候,不应该触发ItemsSource的PropertyChanged,而是触发ItemSource的CollectionChanged,所以把List修改为ObservableCollection。
2.把ItemSource的binding中IsAsync去掉。IsAsync是异步的,会导致ItemsSource发生改变

CanYou8 发表于 2016-6-1 16:51:23

:i0tw:非常感谢!!!

Alice 发表于 2016-6-1 17:26:26

CanYou8 发表于 2016-6-1 16:51
非常感谢!!!

不客气。
:jy74a:
页: [1]
查看完整版本: WPF C1FlexGrid列表刷新后,如何还原选中行?