找回密码
 立即注册

QQ登录

只需一步,快速开始

q406157290

高级会员

124

主题

531

帖子

1359

积分

高级会员

积分
1359

活字格认证

q406157290
高级会员   /  发表于:2015-11-2 09:43  /   查看:10708  /  回复:16
如图所示的问题,为什么初期进来的时候多了一层红框,该怎么解决







这个是我新做的demo ,不用选择行 直接点击Button,问题就再现了

本帖子中包含更多资源

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

x

16 个回复

倒序浏览
KNight
中级会员   /  发表于:2015-11-2 14:09:00
沙发
回复 1楼q406157290的帖子
  1. w.Loaded += (sender2, e2) =>
  2. {
  3.         w.DataContext = d;
  4. };
复制代码


需要在Window加载完成,初始化控件完成后再绑定数据;
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-11-2 14:15:00
板凳
回复 1楼q406157290的帖子

为啥第二个下载我无法下载?
回复 使用道具 举报
q406157290
高级会员   /  发表于:2015-11-2 14:48:00
地板
回复 3楼KNight的帖子


本帖子中包含更多资源

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

x
回复 使用道具 举报
q406157290
高级会员   /  发表于:2015-11-2 14:52:00
5#
回复 2楼KNight的帖子

还有别的方式吗
因为我们的框架是通过指定ViewModel都是在共同里面实现的,通过ViewModel找View
不允许自己再指定
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-11-2 16:54:00
6#
回复 5楼q406157290的帖子

在给子窗口绑定数据设置DataContext之前,对数据源进行手动修改,导致出现排他错误的情况下,就会出现您提到的现象;

目前参考解决方案:
  1. d.FlexGridModels.Name = null;
  2. this.grid.UpdateLayout();
复制代码


在手动修改完数据源时,更新一下C1DataGrid;
回复 使用道具 举报
q406157290
高级会员   /  发表于:2015-11-2 17:19:00
7#
回复 6楼KNight的帖子

谢谢您
我实际开发的程序(从一览画面跳转到详细画面)数据库中检索出来的数据是NULL的并且还需要Check,就会出现我所问的现象,我做这个demo的时候我初期赋值成NULL并没有出现这个现象,所以才手动d.FlexGridModels.Name = null;设置了一下。
我的ViewModel是在画面Loaded之前就在共同中被指定好了,无法按照你说的第一种方法来修改。
您给我指出的第二种方法我试过了没有起到作用呢。
您或许还有别的方法让它初期不对null进行验证
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-11-2 17:57:00
8#
回复 7楼q406157290的帖子

初期不对null验证,然后之后又要对null验证?
回复 使用道具 举报
q406157290
高级会员   /  发表于:2015-11-3 08:09:00
9#
回复 8楼KNight的帖子

按照您自己的解决思路,还有没有其它除了您给的解决方案外的方法呢真的麻烦了, 就是不要让它出现两层红框
我发现在我的Demo上初期不给Name赋值,就连Null都不给它赋值,在点击button的时候不用把Name设置为Null
画面运行不选择行直接点击button就会出两层红框,如果先选择一行然后再点击button,就不会出两层红框了
回复 使用道具 举报
KNight
中级会员   /  发表于:2015-11-3 14:05:00
10#
回复 9楼q406157290的帖子

我先确定一下我理解的是否有误,您是想当Name初始时为Null,然后在详细信息的子界面中第一次不对Null做排他验证而显示红框,之后的验证照常,是这样吗?对于您提到的两层红框,我提交一个demo,您看一下是否还有两层红框的问题

参考如下Demo:


列举了三种初始情况:


注释如下两句代码测试一遍,打开注释再测试一遍,可发现由这两句引起的双层红框:
  1. // 引起两层红框缘由
  2. //CollectionView cv = (CollectionView)CollectionViewSource.GetDefaultView(this.flexGridViewModel1.ItemSource);
  3. //cv.MoveCurrentTo(d.FlexGridModels);
复制代码


这里就深奥了,我就不晓得具体是啥原因了,详情可以问一下Alice;我猜测是由于其中的 MoveCurrentTo 方法,触发了在当前输入框外围又多添加了一层红色边框;

本帖子中包含更多资源

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

x

评分

参与人数 1金币 +999 满意度 +5 收起 理由
q406157290 + 999 + 5 奖励金币

查看全部评分

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