wpf 添加checkbox 多选

_小黑_ 2014-10-24 09:23:56
再 页面的listview 中 有一个 gridview gridview 有一列 是 checkbox 我在多选的时候 必须 选择 checkbox 列的时候 才能多选
点击 gridview 其他地方的时候 就会把 其他选中的行 变为 不是选中的状态
求高手 解答 如何 再 点击 其他列的时候 不把 当前选中 的 变为 未选中
...全文
566 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

IsChecked="{Binding    RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}"
为什么要绑定 它的IsSelected属性?你如果选择其它地方,IsSelected为false,当然不能选中了。 你应该 在IsChecked中 绑定一个bool类型的属性,在全选的事件中 去更新 bool类型属性为true或者false
_小黑_ 2014-10-24
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
你如果使用的 是 checkbox 控件,不会出现你所说的点击其它地方 checkbox取消选中。

<ListView  BorderThickness="0"  Name="lv"  ItemsSource="{Binding Obser}"  Margin="0,5" >
            <!--<i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectionChanged">
                    <i:InvokeCommandAction Command="{Binding SelectedItemCmd}" CommandParameter="{Binding ElementName=lv}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>-->
            <ListView.View>
                <GridView AllowsColumnReorder="False" >
                    <GridViewColumn Width="100">
                        <GridViewColumn.Header>
                            <CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="selectAll" Command="{Binding 
SelectAllChanged}" CommandParameter="{Binding ElementName=TestListViewCheckBoxXaml}"  IsChecked="{Binding IsChecked,Mode=TwoWay}">
                                <TextBlock FontSize="15" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center">全选</TextBlock>
                            </CheckBox>
                        </GridViewColumn.Header>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox x:Name="lookAfficheChkHeader" DockPanel.Dock="Left" Command="{Binding SelectAllChanged}" IsChecked="{Binding	RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}" HorizontalContentAlignment="Center"  VerticalAlignment="Center"/>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Header="公告标题" Width="400">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding name}"  HorizontalAlignment="Center"  VerticalAlignment="Center"></TextBlock>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>
前台
aliuge2000 2014-10-24
  • 打赏
  • 举报
回复
你的意思是 需要 单选是吧。
  • 打赏
  • 举报
回复
你如果使用的 是 checkbox 控件,不会出现你所说的点击其它地方 checkbox取消选中。

111,089

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧