【发布时间】:2012-08-16 06:05:33
【问题描述】:
我面临一个问题(可能非常基本)。 我有一个组合框 1,它填充了早期控件的值(比如 1、2、3、4、5)。
现在基于从组合框 1 中选择一个值,我想填充数据网格的列。
现在,数据网格有 4 列, 一个 DataGridcheckboxcolumn(默认值设置为选中), 一个 DataGridtextboxcolumn1 用于从组合框 1(最重要的部分)自动填充,一个 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>
填充组合框的代码(在数据网格之前)是:
private void ddlCR_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
btnSubmit.IsEnabled = true;
ClearStatusMessages();
if (ddlCR.SelectedIndex > 0)
{
PopulateQCIdList();
}
}
现在 PopulateQCIdList() 应该填充 DataGrid 列(所有 4 列、3 个默认值和由我们从组合框中选择的值驱动的值)
代码隐藏是我想知道在填充 ComboBox 后填充数据的内容,即我想知道如何使用 PopulateQCIdList() 方法准确填充 DataGrid。
如果我遗漏了任何信息,请编辑/告诉我
【问题讨论】:
-
如何将当前选定的行绑定到您的控件?就像在主/详细视图中一样?
-
文森特,你能给我举个例子吗?
-
我想我可以将数据表绑定到数据网格;这样做,我可以将数据表的所有列映射到数据网格中的相应列。请指教。
标签: c# .net wpf xaml data-binding