找回密码
 立即注册

QQ登录

只需一步,快速开始

来爱清
论坛元老   /  发表于:2015-4-3 22:41:00
11#
回复 10楼Alice的帖子

您好,按照您给的提示,我在CommitedRowEdit事件里用代码将e.Row.Errors属性值去了重复信息,但是页面效果却没有发生任何变化,请问这是为什么?
代码和界面效果截图如下:


本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-7 09:29:00
12#
回复 11楼来爱清的帖子

在CommittedEdit和CommittedRowEdit事件里都会进行校验。我看你在CommittedRowEdit事件里对Error进行了处理。这个时候会更新Error。
但如果你又由于进入编辑状态等操作导致CommitedEdit事件触发的话,就会再次校验,并且Error会更新。

因此两个事件都要处理。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
来爱清
论坛元老   /  发表于:2015-4-7 14:05:00
13#
回复 12楼Alice的帖子

您好,我在CommitedEdit事件里加了处理后结果不变。然后为了排除其它干扰,我在几个事件里都加上一句话,只做清除Error的操作,可还是没有任何效果,行头的错误提示仍有15条,重复了8条,我觉得很奇怪,可否帮忙看下为什么?我的代码如下:
private void BoardInfoGrid_OnCommittedEdit(object sender, DataGridCellEventArgs e)
        {
            e.Cell.Row.Errors.Clear();
        }

        private void BoardInfoGrid_OnCommittedRowEdit(object sender, DataGridRowEventArgs e)
        {
            e.Row.Errors.Clear();

        }

       private void BoardInfoGrid_OnCommittingEdit(object sender, DataGridEndingEditEventArgs e)
        {
            e.Row.Errors.Clear();
        }
        private void BoardInfoGrid_OnCommittingRowEdit(object sender, DataGridEditingRowEventArgs e)
        {
            e.Row.Errors.Clear();
        }

        private void BoardInfoGrid_OnCommittingNewRow(object sender, DataGridEndingNewRowEventArgs e)
        {
            e.NewRow.Errors.Clear();
        }

        private void BoardInfoGrid_OnCommittedNewRow(object sender, DataGridRowEventArgs e)
        {
            e.Row.Errors.Clear();
        }
回复 使用道具 举报
来爱清
论坛元老   /  发表于:2015-4-7 14:51:00
14#
回复 12楼Alice的帖子

求大神帮帮忙啊,这个问题已经困扰我们项目组好多天了,一直未能解决,挺着急的。另外,我在C1本身给的Demo里在DataInput Validation 页面后台用CommittedEdit和CommittedRowEdit两个事件里调用Errors.Clear()方法去试了下,也是一样无法清除行头的Error的。代码截图如下:

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-7 15:26:00
15#
回复 14楼来爱清的帖子

你的问题无法重现。
测试步骤:
1.打开随机安装Demo,路径:
\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.DataGrid\CS\DataGridSamples\DataInput\Validation
2.在Validation.xaml.cs添加代码如下:
  1.   public Validation()
  2.         {
  3.             InitializeComponent();

  4.             DataContext = GetProducts();
  5.            
  6.             grid.CommittedEdit += grid_CommittedEdit;
  7.             grid.CommittedRowEdit += grid_CommittedRowEdit;
  8.   
  9.         }

  10.         void grid_CommittedRowEdit(object sender, C1.WPF.DataGrid.DataGridRowEventArgs e)
  11.         {
  12.             e.Row.Errors.Clear();
  13.         }

  14.         void grid_CommittedEdit(object sender, DataGridCellEventArgs e)
  15.         {
  16.             e.Cell.Row.Errors.Clear();
  17.         }
复制代码

3.运行程序。打开Validation界面。
4.选择第一行,Name列的文字,删除掉,然后离开编辑状态。结果如图:



如果操作步骤有所不同,请指出。

本帖子中包含更多资源

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

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
来爱清
论坛元老   /  发表于:2015-4-7 16:04:00
16#
回复 15楼Alice的帖子

您好。我这边断点进入方法看了,代码里调试时,清空前确实有错误,执行了清空操作后,代码里的Error没了,但页面上行头错误提示仍在,如截图:





我的问题可能是出在哪呢?

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-7 17:25:00
17#
回复 16楼来爱清的帖子

我尝试按照你的写法,将CommittedEdit和CommittedRowEdit事件写在XAML里,就重现了你的问题。

按照我在15楼的方法调用就是好的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
来爱清
论坛元老   /  发表于:2015-4-7 19:33:00
18#
回复 17楼Alice的帖子

哦,那什么原因你知道吗?为什么事件写在XAML里面就不行了呢?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-8 10:04:00
19#
回复 18楼来爱清的帖子

XAML和C#调用事件肯定是有区别的。
这是由WPF机制和.NET机制不同引起的。
但就详细的区别,很抱歉,我也不太清楚。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
来爱清
论坛元老   /  发表于:2015-4-8 16:00:00
20#
回复 19楼Alice的帖子

您好。我把代码改成按照你15楼的方式在cs文件里面订阅事件,这样在编辑行里确实可以清空Error了。
但是,在新增一行时,双击新行的第一个单元格进行编辑,但不填数据,然后将焦点移到上一行以提交刚刚编辑的新行,Error提示未消失,我要的效果是要让其消失。
我在cs里加了CommittingNewRow和CommittedNewRow事件,也一样不行,请问该怎么解决?




本帖子中包含更多资源

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

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