none
绑定数据的网络型ListView,里面的CheckBox如何选定? RRS feed

  • 问题

  • <ListView HorizontalAlignment="Center" Margin="10,10,0,40" Name="tableInfoView" Grid.Row="0" Width="750" HorizontalContentAlignment="Center">
               
                <ListView.View>
                   
                <GridView>
                    <GridViewColumn  Width="70" Header="序号" x:Name="g1">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>                               
                                    <CheckBox x:Name="chk" Tag="{Binding Path=Id}" Content="{Binding Path=Id}" ></CheckBox>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>                       
                        </GridViewColumn>               

    </GridView>
                    </ListView.View>
            </ListView>

     <Button Name="selectAllBtn" Content="全  选" Margin="20 0" Height="25" Click="selectAllBtn_Click" ></Button>

    如何通过Button控制ListView里面的CheckBox是否被选择?


    电子商务人,电子商务路
    2009年12月15日 9:52

答案

全部回复

  • 你的需求是什么? 选中判断 还是循环所有判断?
    2009年12月16日 14:32
  • 我的需求是判断CheckBox哪个被选择了,哪个没有选择
    电子商务人,电子商务路
    2009年12月18日 0:22
  • 楼主你好,

    你可以遍历每一行的CheckBox,查看其IsChecked属性。
    在ListView中,第一行的默认的是有一个GridViewRowPresenter元素,它又包括ContentPresenter(对每一个cell来说),通过这两个元素找到CheckBox,你就可以作出判断了。
    下面是一个link:
    http://social.msdn.microsoft.com/Forums/en/wpf/thread/83e1f077-a385-4dfe-baa1-0211928a217d

    谢谢.


    Jim Zhou -MSFT
    2009年12月22日 8:13
    版主
  • 我以前用的时候,也出现同样的问题.不过后来用了个不怎么好的方法解决了

    就是将绑定到listview的datatable中加上一列,绑定到你的checkbox的ischecked属性.
    后面点击checkbox就触发一个事件,将datatable中的对应值改为true.
    最后遍历datatable
    2009年12月23日 2:49
  • 谢谢版主,这几天忙了点没得空上来。

    我是通过SelectItems来对比DataSource的方法来进行反选的,不过我觉得这种方式比webForm和WinForm的方式都要麻烦得多


    电子商务人,电子商务路
    2009年12月28日 1:16
  • 楼主你好,
    -->我是通过SelectItems来对比DataSource的方法来进行反选的,不过我觉得这种方式比webForm和WinForm的方式都要麻烦得多
    因为WPF中,ListView行作为一个visual tree,我们想要获得里面中的某一个UI元素的话,一个方式是通过遍历这个visual tree,找到想要找的元素,另一个方法是通过一些设计,比如MVVM等。

    谢谢。


    Jim Zhou -MSFT
    2009年12月28日 8:47
    版主
  • 谢谢Jim Zhou -MSFT

    最近开始使用WPF,WPF确实很强大,但是不管以前是winForm的还是web的,应该都会感觉有点别扭
    电子商务人,电子商务路
    2009年12月28日 16:19
  • 楼主你好,
    是的,比起以前的开发技术来说,WPF确实可以说很灵活和强大,大家一起讨论,一起学习。

    谢谢。


    Jim Zhou -MSFT
    2009年12月29日 8:00
    版主