【问题标题】:How to populate a datagrid based on value in combobox如何根据组合框中的值填充数据网格
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2013-04-28
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2017-08-21
    相关资源
    最近更新 更多