如何根据组合框中的值填充数据网格

时间:2012-08-16 06:05:33

标签: c# .net wpf xaml data-binding

我正面临一个问题(可能非常基本)。 我有一个combobox1,它已填充早期控件的值(比如1,2,3,4,5)。

现在基于从combobox1中选择一个值,我想填充数据网格的列。

现在,datagrid有4列, 一个DataGridcheckboxcolumn(值设置为默认选中), 一个DataGridtextboxcolumn1用于从combobox1(最重要的部分)自动填充,一个DataGridTextBoxColumn2(设置为默认值)和 一个DataGridComboBoxColumn(设置为默认值AVS_DB frm AVS,DB,AVS_DB)。

我的问题很基本。

如何获取填充的数据网格中的值。

xaml和代码隐藏如下:

<DataGrid Name="dtgQCNumbers" Width="400" AutoGenerateColumns="False" 
          Grid.ColumnSpan="2" Height="100" Grid.RowSpan="5" Grid.Row="6" 
          SelectionChanged="dtgQCNumbers_SelectionChanged" 
          Grid.Column="1" Margin="3,10,125,15">
    <DataGrid.Columns>
        <DataGridCheckBoxColumn Header="Enter_Choice" Width="100" 
            Binding="{Binding Path=DataGridCheckBox_Option}" />
        <DataGridTextColumn Header="QC_ID" Width="100" 
            Binding="{Binding Path=DataGridTextBox_QCList1}" />                               
        <DataGridTextColumn Header="Summary" Width="100"
            Binding="{Binding Path=DataGridTextBox_QCSummary}" />
        <DataGridComboBoxColumn Header="ControlOption" Width="100"
            SelectedItemBinding="{Binding Path=DataGridComboxBox_Control}">
            <DataGridComboBoxColumn.ItemsSource>
                <col:ArrayList>
                    <sys:String>AVS</sys:String>
                    <sys:String>DB</sys:String>
                    <sys:String>AVS_DB</sys:String>
                </col:ArrayList>
            </DataGridComboBoxColumn.ItemsSource>
        </DataGridComboBoxColumn>
        </DataGrid.Columns>
            grid.ColumnWidth = new DataGridLength(100);
        </DataGrid>

填充ComboBox(在数据网格之前)的代码是:

private void ddlCR_SelectionChanged(object sender, SelectionChangedEventArgs e)
  {
     btnSubmit.IsEnabled = true;
     ClearStatusMessages();
     if (ddlCR.SelectedIndex > 0)
     {
        PopulateQCIdList();
     }
  }

现在PopulateQCIdList()应该填充DataGrid列(所有4列,3个默认值和从我们从组合框中选择的值驱动)

代码隐藏是我想知道在填充ComboBox之后填充数据,即我想知道如何使用PopulateQCIdList()方法填充DataGrid。

如果我遗漏了任何信息,请编辑/告诉我

1 个答案:

答案 0 :(得分:0)

我不确切知道你做了什么。但是你有两个选择:
选项1:定义一个Class,它将保存您的数据,包含有意义的属性名称,用于布尔值,字符串,字符串,枚举值。该类应实现INotifyPropertyChanged。然后将DataGrid绑定到这些对象的List 选项2:定义数据库,(我使用SQL Server Compact Edition 3.5,你可以使用Access,MySQL,...有很多DB),然后将DataGrid绑定到这个DB。