设置ItemSource时设置检查Gridcol的chckbox

时间:2013-08-25 19:26:44

标签: wpf datagrid datagridcomboboxcolumn itemsource

我已经绑定了DataGrid,其中我将CheckBoxColumn作为其第一个col和标题中的Checkbox。如果选中,则检索该行的数据。代码是:

 <DataGrid AutoGenerateColumns="False" Name="dgvSiSelection" BorderBrush="#FFB7B39D" Background="LightYellow" RowBackground="LightGray" AlternatingRowBackground="#FFFFFFF5" BorderThickness="10" FontSize="13" FontFamily="Segoe UI" CanUserAddRows="False">

    <DataGrid.Columns>
          <DataGridCheckBoxColumn Binding="{Binding BoolProperty, Mode=TwoWay}"/>
          <DataGridTextColumn Header="" Binding="{Binding SiHeader}" MinWidth="108" IsReadOnly="True"/>
          <DataGridTextColumn Header="Number of Chemicals" Binding="{Binding S_NumberOfCases}" />
          <DataGridTextColumn Binding="{Binding S_Value1}" >
                <DataGridTextColumn.Header>
                         <Grid>
                              <Grid.ColumnDefinitions>
                                  <ColumnDefinition/>
                                    <ColumnDefinition/>
                              </Grid.ColumnDefinitions>
                              <TextBlock Grid.Column="1" Text="Value1"/>
                              <CheckBox Name="chkNValue1"  Grid.Column="0" Width="16" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridColumn}}, Path=DataContext.AllItemsAreChecked}" />
                      </Grid>
        ..................

在上面的网格中,我在第一列和标题上都有复选框和标题。基于对各个复选框数据的选择进行检索。

当我设置DaraGrid的ItemSource时,项目显示正确但是第一个col&amp;的复选框。未选中列标题。我找不到设置第一行复选框的方法。

另外如何选择chkNValue1?

如何设置或如何完成此操作。

CODE 我导入数据并相应地加载数据网格:

        List<SIData> sd = mw.xlsImpExp.GetStep5SiList();

        dgvSiSelection.ItemsSource = sd;

        // SI Grid - Check the ValueX checkbox on header
        for (int i = 0; i < sd.Count; i++)
        {
            SIData s = sd[i];

            if (s.S_Value1 > 0)
                chkNValue1.IsChecked = true;
            if (s.S_Value2 > 0)
                chkNValue2.IsChecked = true;
            if (s.S_Value3 > 0)
                chkNValue3.IsChecked = true;
            if (s.S_Value4 > 0)
                chkNValue4.IsChecked = true;
            if (s.S_Value5 > 0)
                chkNValue5.IsChecked = true;
        }

要检查ValuesX列的复选框,我管理了上述代码。但是想知道它们是否比循环更简单容易。

对于col1复选框,我根本没有代码。我不知道如何实现它。我需要在设置网格的ItemSource时设置它。

任何指南,帮助表示赞赏。

由于

0 个答案:

没有答案