从组合框C#WPF

时间:2015-05-18 13:56:32

标签: c# wpf xaml datagrid combobox

我正在尝试将 ComboBox 中的数据插入 DataGrid

现在使用下面的代码片段,我已经可以在我的数据网格中插入一行,但由于某种原因,该行显示为完全空。

private void cmbAddExtras_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    using (DataEntities DE = new DataEntities())
    {
        tblExtra E = (tblExtra)cmbAddExtras.SelectedItem;
        List<string> items = new List<string> { E.ItemCode };

        items.Where(item => item.ToString() != null).ToList().ForEach(i =>
        {
            dgAddExtras.Items.Add(i);
        });
    }
}

我也试过通过XAML绑定我的列,但它有同样的问题,它仍然在我的数据网格中显示一个空行。

    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding ItemID}" Header="id" MinWidth="20" MaxWidth="100"/>
        <DataGridTextColumn Binding="{Binding ItemCode}" Header="Code" MinWidth="80" MaxWidth="100"/>
        <DataGridTextColumn Binding="{Binding ItemDescription}" Header="Description" MinWidth="80" MaxWidth="100"/>
        <DataGridTextColumn Binding="{Binding ItemPrice}" Header="Price" MinWidth="80" MaxWidth="100"/>
        <DataGridTextColumn Binding="{Binding ItemSellingPrice}" Header="QTY" MinWidth="80" MaxWidth="100"/>
    </DataGrid.Columns>

我给这个类的列名与我表中的列名完全相同,以防万一有人想知道。

我不知道为什么会这样做。这可能是我想念的非常简单的事情,如果是的话,抱歉:P并提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你的代码错了:

在下面一行中,您只需在string&#39; List&#39;

中添加items
List<string> items = new List<string> { E.ItemCode.ToString() };

那么你怎么能指望一个字符串会包含你在DataGrid列中提出的所有这些属性?

像这样写:

private void cmbAddExtras_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    using (DataEntities DE = new DataEntities())
    {
        tblExtra E = (tblExtra)cmbAddExtras.SelectedItem;
        List<tblExtra> items = new List<tblExtra> { E };

        items.Where(item => item != null).ToList().ForEach(i =>
        {
            dgAddExtras.Items.Add(i);
        });
    }
}