我正面临一个问题(可能非常基本)。 我有一个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。
如果我遗漏了任何信息,请编辑/告诉我
答案 0 :(得分:0)
我不确切知道你做了什么。但是你有两个选择:
选项1:定义一个Class,它将保存您的数据,包含有意义的属性名称,用于布尔值,字符串,字符串,枚举值。该类应实现INotifyPropertyChanged。然后将DataGrid绑定到这些对象的List
选项2:定义数据库,(我使用SQL Server Compact Edition 3.5,你可以使用Access,MySQL,...有很多DB),然后将DataGrid绑定到这个DB。