找回密码
 立即注册

QQ登录

只需一步,快速开始

suntongowen

初级会员

18

主题

65

帖子

370

积分

初级会员

积分
370

活字格认证

suntongowen
初级会员   /  发表于:2015-4-1 14:06  /   查看:7513  /  回复:9
DEMO中的例子,窗口初始化后直接勾选第一行的CheckBox,行头不会出现编辑状态的图标(小笔),勾选第二行会出现,想让点第一行同样出现编辑状态的图标,请问怎么解决?

本帖子中包含更多资源

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

x

9 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-4-1 17:41:00
沙发
回复 1楼suntongowen的帖子

你好。
经过测试,在你的Demo中,第一次点击第一行的checkbox,的确不会出现编辑标识。

根据代码,这里涉及你的代码逻辑,我需要调查下才能给你反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
suntongowen
初级会员   /  发表于:2015-4-2 09:55:00
板凳
回复 2楼Alice的帖子

OK谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-2 11:13:00
地板
回复 3楼suntongowen的帖子

推测是CheckBox列的的问题。
将你代码中的CheckBox那一列的XAML代码改成下面这样,运行时不会有问题:
  1.                 <c1:DataGridCheckBoxColumn Binding="{Binding Available, Mode=TwoWay}" Header="CHECK">
  2.             
  3.                 </c1:DataGridCheckBoxColumn>
复制代码

你可以将原本的DataGridTemplateColumn header="CHECK"改成DataGridCheckBoxColumn,然后再根据你的业务逻辑,添加代码。

改后如附件,仅供参考:

本帖子中包含更多资源

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

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
suntongowen
初级会员   /  发表于:2015-4-2 11:53:00
5#
回复 4楼Alice的帖子

编辑标示可以显示,谢谢,还想问一下DataGridCheckBoxColumn的勾选事件怎么触发(MVVM框架)
回复 使用道具 举报
suntongowen
初级会员   /  发表于:2015-4-2 11:56:00
6#
回复 4楼Alice的帖子

正常我用Template列的时候用EventTrigger触发,用到CheckBox的Click事件
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-2 17:22:00
7#
回复 5楼suntongowen的帖子

DataGridCheckBoxColumn可以通过Style获取到CheckBox.Checked和UnChecked事件。
代码参考如下:
  1. <c1:DataGridCheckBoxColumn.CellStyle>
  2.                         <Style>                           
  3.                             <EventSetter Event="CheckBox.Checked" Handler="OnChecked"/>
  4.                         </Style>
  5.                     </c1:DataGridCheckBoxColumn.CellStyle>   
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
suntongowen
初级会员   /  发表于:2015-4-2 18:04:00
8#
回复 7楼Alice的帖子

根据你给的事例代码,修改了一下Demo,但是这样写会报异常。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-3 10:10:00
9#
回复 8楼suntongowen的帖子

你好。
你的Demo已经收到了。
测试后给你反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-3 14:48:00
10#
回复 8楼suntongowen的帖子

示例已经测试,出错原因是WPF下没有这样的语法,可以直接使用Command来绑定事件。
CheckBox的Checked事件,是一个EventHanlder,不能使用Command来接这个事件,这不符合WPF的语法要求,因此才会报错。

由于不太清楚你具体的需求是要通过这个事件实现什么。我只是按照我对WPF机制的理解来梳理下这个问题,更多的解决方案你可以查阅msdn有关EventSetter的使用或是EventSetter在MVVM下的使用。
1.EventSetter那段代码按照我7楼贴出的不变。
2.MainWindow.xaml.cs文档中添加事件代码,并传值到MVVM。
  1.         void OnChecked(object sender, RoutedEventArgs e)
  2.         {
  3.             ViewModel vm = this.DataContext as ViewModel;
  4.             vm.CheckBoxClick.Execute(sender);
  5.         }
复制代码


3.ViewModel.cs文件中,因为传过来的就是DataGridCellPresenter,因此删除掉如下代码:
  1. //CheckBox ck = (CheckBox)obj;
  2.             //StackPanel sp = (StackPanel)ck.Parent;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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