在一个DataGrid中,不使用CheckBox的情况下,怎么实现多行选中。。
我的想法是:在*.xaml.cs代码中定义一个集合,当触发了行的点击事件的时候,就获取到点击的行,然后将行添加到List集合中。这样也实现了多行选中。但是,WPF中有默认的依赖项,每次点击DataGrid的行的时候都会将上次选中的行的样式消除,然后将新选中的行的样式修改,并还原上次选中行的样式。
我想知道能否消除掉WPF的默认样式。在网上搜索了很久,没有找到类似的资料。
如果看了我的想法,觉得行不通,那么帮忙想个思路,我是个WPF新手,最好有源码,方便我速度弄懂。。在线急求
不是很明白你想要的,但是刚才我试了试DataGrid可以多行选中啊,ctrl+选的行,后台也不需要些什么点击事件来添加到集合里,直接datagrid1.SelectItems就行了呗。??或者我说的不是你像要的
恩,对。这样说吧。我的需求是 点击选中,再次点击然后取消选中。不能使用Ctrl和CheckBox
在每行中加入一个隐藏域,用于区分是否选中.每行的点击事件里面添加内容,当点击此行时,如果没被选中,就修改隐藏域的值并修改当前行的样式,反之亦然.最后提交操作的时候遍历所有行,找到每行隐藏域的值,区分当前行是否为选中.
我获取所有需要的数据已经取到。目前纠结的一个点就是这样一个功能。
我每次选中一行会修改当前行的样式,并添加到集合中。然后我再次点击应该做的操作是消除行的颜色,并在集合中删除数据。
现在还没做完的就是第二次点击,行的颜色不会有变化。我有定义一个属性。然后用这个属性写了一个事件触发器。当这个属性为True的时候会触发颜色变动。(理论上来说只需要颜色消除,还原以前的颜色。但是现在这个效果无法实现。我也不知道是不是WPF的默认模板里面的样式有影响还是怎么回事)
通过重写DataGridRow和DataGridCell模板,将其默认的事件修改。完成了DataGrid不使用CheckBox实现了多行选中,并且可以单击选择是否选中当前行的效果