首页 > 解决方案 > 如何使用“rowheader”在 WPF 数据网格中创建复选框功能

问题描述

<Grid Grid.Column="2">
            <Grid.RowDefinitions>
                <RowDefinition Height="50"></RowDefinition>
                <RowDefinition Height="50*"></RowDefinition>
            </Grid.RowDefinitions>
            <Grid Grid.Row="0" Margin="10,5,10,5">
                <StackPanel Orientation="Horizontal">
                    <Button x:Name="btnAllRefresh" Content="All Refresh" Margin="2,5,2,5" Width="100" Click="btnAllRefresh_Click" />
                    <Button x:Name="btnRefresh" Content="Refresh" Margin="2,5,2,5" Width="100" Click="btnRefresh_Click" />
                </StackPanel>
            </Grid>
            <DataGrid x:Name="dataGrid" Grid.Row="1" AutoGenerateColumns="False" 
                      SelectionMode="Extended" CanUserAddRows="False" 
                      CanUserDeleteRows="False" CanUserResizeRows="False"
                      RowHeaderWidth="10"
                      SelectedItem="SelectedItem"
                      Margin="10,5,10,5" FrozenColumnCount="2" SelectionUnit="FullRow" HorizontalAlignment="Stretch">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="VCS ID" Binding="{Binding Path=Id}" IsReadOnly="True"></DataGridTextColumn>
                    <DataGridTextColumn Header="Connected" Binding="{Binding Path=Connected}" IsReadOnly="True"></DataGridTextColumn>
                    <DataGridTextColumn Header="VCS Run" Binding="{Binding Path=VCSRun}" IsReadOnly="True"></DataGridTextColumn>
                    <DataGridTextColumn Header="Update Ready" Binding="{Binding Path=ReadyToUpdate}" IsReadOnly="True"></DataGridTextColumn>
                    <DataGridTextColumn Header="Version" Binding="{Binding Path=Version}" IsReadOnly="True"></DataGridTextColumn>
                    <DataGridTextColumn Header="IP" Binding="{Binding Path=IP}" IsReadOnly="True"></DataGridTextColumn>
                    <DataGridTextColumn Header="Last Cmd" Binding="{Binding Path=LastCmd}" IsReadOnly="True"></DataGridTextColumn>
                    <DataGridTextColumn Header="Last Status" Binding="{Binding Path=LastStatus}" IsReadOnly="True"></DataGridTextColumn>

                </DataGrid.Columns>
            </DataGrid>
        </Grid>

在xml中

private void btnSelectedOffReq_Click(object sender, RoutedEventArgs e)
        {
            if (dataGrid.SelectedItems.Count == 0)
            {
                System.Windows.MessageBox.Show("Please select VCS at least one");
                return;
            }
            foreach (Vehicle v in dataGrid.SelectedItems)
            {
                if (v.Connected)
                    CTRL.Server.OffReq(v.Id);
            }
        }

例如,在 xaml.cs 中。

我知道数据网格中的行标题有一个“选择功能”。每当出现选择功能时,我希望复选框以相同的方式执行。没有办法吗?

标签: c#wpfxamldatagrid

解决方案


推荐阅读