找回密码
 立即注册

QQ登录

只需一步,快速开始

q406157290
高级会员   /  发表于:2017-5-15 11:19:44
17#
本帖最后由 q406157290 于 2017-5-15 11:22 编辑
Alice 发表于 2017-5-12 17:37
您在8楼提出的需求我收到了。
之前提出的建议都是针对您给的Demo,由于您的整体框架以及代码逻辑都影响 ...

请先忽略我的需求

我现在想要知道的是 怎么样的写法能避免再出现这个问题
麻烦请回答我 我现在要在changed里处理我的逻辑   是不是还会有这个问题 ? 如果会怎么写来避免
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2017-5-12 17:37:48
16#
q406157290 发表于 2017-5-11 17:16

Filter 的时候先commit 然后就没有处于编辑状态下的Row也可以理解
但是我只是通过Linq 去Rows里面查 ...

您在8楼提出的需求我收到了。
之前提出的建议都是针对您给的Demo,由于您的整体框架以及代码逻辑都影响到整个程序的运行,我们并不能保证在任何情况下您使用该方法都不会出错。
我们给您的是在合理框架下的建议,您的代码是不建议使用的,这不符合我们的产品设计。

至于您8楼中需求,我可以再帮您找一些合理的方法和建议,但还是不能保证是百分之百的。

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
q406157290
高级会员   /  发表于:2017-5-12 15:56:06
15#
本帖最后由 q406157290 于 2017-5-12 16:00 编辑
JeffryLI 发表于 2017-5-12 11:52
您好:给您提供一个获取当前编辑行的代码示例:
回复 使用道具 举报
q406157290
高级会员   /  发表于:2017-5-12 13:05:01
14#
本帖最后由 q406157290 于 2017-5-12 16:00 编辑
JeffryLI 发表于 2017-5-12 11:52
您好:给您提供一个获取当前编辑行的代码示例:

能确保我这样写 就不会再出同样问题??
想知道你们出错原因
这样 在写的时候能避免再有这问题

还有就是我能在changed里面取this.DataGrid.Rows.FirstOrDefault(m => m.IsEditing);吗?会不会某种情况下changed里也会有该问题???

你们那边肯定存在bug ,也不是你们马上修正完 我们这边就能反映的
所以给个说明  我们怎么写才能避免触发你们的bug
不光在changing的时候有这个bug 别的时候会不会还有类似的bug

我们这边有两种能一直重现的操作  但打出来的log是不同的
所以你就给一个 取dataGrid.SelectedItem  这可不放心

再让我们客户程序崩了这可受不了啊
请尽快给个回复


回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2017-5-12 11:52:10
13#
您好:给您提供一个获取当前编辑行的代码示例:
  1. public void C1DataGrid_SelectionChanging(object sender, C1.WPF.DataGrid.DataGridSelectionChangedEventArgs e)
  2.         {
  3.             C1DataGrid dataGrid = sender as C1DataGrid;

  4.                         var editItem = dataGrid.SelectedItem;//取到的这个您可以寄存起来,根据您的业务来处理,此处获取不需要Linq遍历

  5.                 }
复制代码
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
q406157290
高级会员   /  发表于:2017-5-12 11:41:26
12#
本帖最后由 q406157290 于 2017-5-12 11:48 编辑
JeffryLI 发表于 2017-5-12 11:25
您好,我可以理解为您现在在changing中是为了获取当前编辑的行的值,是吗?

您好
并不全是
最终目的是
两个DataGrid 联动时
主DataGrid 操作过换行但是子DataGrid出现CheckError 后 主DataGrid 仍选择之前行
在这处理中 取当前编辑行的值是为了跟我寄存的数据作比较

回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2017-5-12 11:25:28
11#
您好,我可以理解为您现在在changing中是为了获取当前编辑的行的值,是吗?
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
q406157290
高级会员   /  发表于:2017-5-12 09:31:04
10#
本帖最后由 q406157290 于 2017-5-12 09:41 编辑
JeffryLI 发表于 2017-5-12 09:28
您好,
第一我先解答您的一个疑问,就是在同一窗体上,两个datagrid是不会同时处于编辑状态,这跟鼠标聚焦 ...

你回答的一个问题不知能您自己试没试过
同一窗体 两个DataGrid可以同时处于编辑状态互不影响

changing的时候并不管Row里的内容到底有没有变  我的目地是在changing的时候 当前DataGrid的SelectedIndex 还没有变(如果我后续的逻辑出现CheckError 我想在changing的时候给e.AddedRanges里的更换成原来的行)
changed的时候才发生变化
你们可以不用考虑我这边要实现什么逻辑  我给的Demo非常简单 我只在changing的时候去查找了下处于编辑状态的Row  但是我并没有去改变任何东西没有改变任何值
程序崩溃 这合理???

本帖子中包含更多资源

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

x
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2017-5-12 09:28:51
9#
您好,
第一我先解答您的一个疑问,就是在同一窗体上,两个datagrid是不会同时处于编辑状态,这跟鼠标聚焦点是有关系的,如果您正在编辑右侧datagrid,一旦鼠标聚焦点不在右侧datagrid,就会提交修改结果,所以你所担心的问题不可能发生的。
第二您是为了选择当前行未改变的内容,changing顾名思义是正在改变,可能行内容已经发生变化,所以我们不在此处获取行内容,建议您使用BeganEdit方法,更符合您的需求。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
q406157290
高级会员   /  发表于:2017-5-11 17:16:59
8#
本帖最后由 q406157290 于 2017-5-12 08:56 编辑
Alice 发表于 2017-5-11 17:06
您好。
我们进行了测试和调查。
我们的设计每次filter都会commit之前处于编辑状态的行,不管是否报错, ...


Filter 的时候先commit 然后就没有处于编辑状态下的Row也可以理解
但是我只是通过Linq 去Rows里面查找下看看还有没有处于编辑状态的Row
但这也不应该程序崩溃掉啊, 只是我我没能拿到编辑的行而已

而且代码中也有注释
如果只写changing里的If判断 或者是不写If判断直接去查找当前编辑的行 程序也是没有崩溃掉,只有两个同时写了程序崩溃掉了

我想找到崩溃的原因,因为我们客户那边还有不同的重新的操作,只是我这边没有重现,我就怕selectiochaning这避免了这个问题,别的地方再会有这种问题
不知道原因 改的也不放心

我最终的需求是这样的



本帖子中包含更多资源

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

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部