绑定datagrid组合框WPF

时间:2014-07-02 13:36:01

标签: c# wpf vb.net datagrid combobox

当我尝试绑定我的组合框时,我遇到了问题。

我有2个DataSet表,我希望组合框显示1个DataSet表的值,但是所选索引将从其他DataSet中获取。

示例:

1.具有Id col和UnitID col的材料数据集,用于表示计算此材料重量的单位。

2.Units DataSet With Id col和Name

datagrid将显示Material数据集详细信息(id为textbox col,unitID为comboBox col)

我希望我的datagrid组合框col在组合框选项中显示所有单位名称,所选项目将是索引等于材料UnitID的项目。

我成功地将所有单位名称显示为组合框选项:

cmb.ItemsSource = DS.Units.ToList

cmb.DisplayMemberPath = "EnglishName"

但是无法以正确的方式指定SelectedValuePath和SelectedValueBinding。

1 个答案:

答案 0 :(得分:0)

一个数据源可用于多个组合框,但两个数据源无法绑定到一个控件。相反,我们可以使用LINQ来组合这些数据源,并将结果数据源分配给组合框。

DataTable material= ds.Tables["Material"];
DataTable units= ds.Tables["Units"];

var query =
    from m in material.AsEnumerable()
    join u in units.AsEnumerable()
    on m.Field<int>("Column1") equals
        u.Field<int>("Column1")
select new
    {
        Text =
            u.Field<string>("EnglishName"),
        Value =
            m.Field<int>("MaterialID")
    };

cmb.ItemsSource = query.ToList();

cmb.DisplayMemberPath = "Text";
cmb.SelectedValuePath = "Value"