首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在DataGridView中从ComboBoxColumn中选择项目时显示表的属性。?

在DataGridView中,如果想要在ComboBoxColumn中选择项目时显示表的属性,可以通过以下步骤实现:

  1. 创建一个DataGridView,并添加一个ComboBoxColumn作为其中的一列。
  2. 设置ComboBoxColumn的数据源,可以是一个数据表、数据集或者自定义的数据源。
  3. 在ComboBoxColumn中设置DisplayMember和ValueMember属性,分别指定要显示的属性和对应的值。
  4. 为DataGridView的CellFormatting事件添加处理程序。
  5. 在CellFormatting事件处理程序中,判断当前列是否为ComboBoxColumn,并且当前单元格的值不为空。
  6. 如果满足条件,获取ComboBoxColumn的数据源,并根据当前单元格的值找到对应的属性值。
  7. 将属性值赋给当前单元格的显示值。

以下是示例代码:

代码语言:txt
复制
// 创建一个DataGridView
DataGridView dataGridView = new DataGridView();

// 添加一个ComboBoxColumn
DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn();
dataGridView.Columns.Add(comboBoxColumn);

// 设置ComboBoxColumn的数据源
comboBoxColumn.DataSource = yourDataSource;

// 设置ComboBoxColumn的DisplayMember和ValueMember属性
comboBoxColumn.DisplayMember = "PropertyName";
comboBoxColumn.ValueMember = "PropertyValue";

// 为DataGridView的CellFormatting事件添加处理程序
dataGridView.CellFormatting += DataGridView_CellFormatting;

// CellFormatting事件处理程序
private void DataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    // 判断当前列是否为ComboBoxColumn,并且当前单元格的值不为空
    if (dataGridView.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn && e.Value != null)
    {
        // 获取ComboBoxColumn的数据源
        var dataSource = ((DataGridViewComboBoxColumn)dataGridView.Columns[e.ColumnIndex]).DataSource;

        // 根据当前单元格的值找到对应的属性值
        var propertyValue = dataSource.AsEnumerable()
            .FirstOrDefault(row => row.Field<string>("PropertyValue") == e.Value.ToString())
            ?.Field<string>("PropertyName");

        // 将属性值赋给当前单元格的显示值
        if (propertyValue != null)
        {
            e.Value = propertyValue;
            e.FormattingApplied = true;
        }
    }
}

这样,在DataGridView中选择ComboBoxColumn中的项目时,会显示对应的表的属性值。请注意,示例代码中的"yourDataSource"需要替换为实际的数据源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券