找回密码
 立即注册

QQ登录

只需一步,快速开始

CanYou8

银牌会员

67

主题

191

帖子

2047

积分

银牌会员

积分
2047

活字格认证微信认证勋章元老葡萄

CanYou8
银牌会员   /  发表于:2016-5-30 15:06  /   查看:4022  /  回复:4
列表数据选中了第3行,刷新列表(新增一行、删除一行等操作)后想让列表选中的数据还是那条,如何实现?
  1.                     var currentItem = CurrentItem; //当前行

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

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

4 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-5-30 16:02:03
沙发
好的。
谢谢提供的Demo,问题收到了,测试后给您反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
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发生改变

评分

参与人数 1满意度 +5 收起 理由
CanYou8 + 5 很给力!

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou8
银牌会员   /  发表于:2016-6-1 16:51:23
地板
非常感谢!!!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-6-1 17:26:26
5#
CanYou8 发表于 2016-6-1 16:51
非常感谢!!!

不客气。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部