【问题标题】:DisplayMemberPath for ComboBox in WPF, C#WPF、C# 中组合框的 DisplayMemberPath
【发布时间】:2013-01-12 22:55:12
【问题描述】:

我有DataTable 包含必要的DataRows,我想在ComboBox 中显示。 第二个DataColumn 叫做VALUE,我想把它改成DisplayMember

但是,根据DataRows 的数量,我在ComboBox 中看到的所有内容 - 行。 我究竟做错了什么?

DataTable dataTableManufacturers;
dm = new DatabaseManagement.DatabaseManagement(Properties.Settings.Default.DBServer,Properties.Settings.Default.DBName, Properties.Settings.Default.DBUser, Properties.Settings.Default.DBPassword);
dataTableManufacturers = dm.getManufacturers();

combxManufacturer.DisplayMemberPath = "VALUE";

foreach (DataRow row in dataTableManufacturers.Rows)
{
    combxManufacturer.Items.Add(row);
}

【问题讨论】:

  • 尝试设置combxManufacturer.ItemsSource = dataTableManufacturers;,而不是单独添加行。
  • @paul 你是对的,但需要对 dataTableManufacturers.Rows .Cheers!

标签: c# wpf combobox datatable datarow


【解决方案1】:

我试过了,我知道它确实有效。

private DataTable testTable = new DataTable();
        testTable.Columns.AddRange(new DataColumn[]
            {
                new DataColumn("ID", typeof(int)), 
                new DataColumn("Name", typeof(string)), 
            });
        var row = testTable.NewRow();
        row[0] = 1;
        row[1] = "My Name";
        testTable.Rows.Add(row);
        myTestCmb.ItemsSource = TestTable.AsDataView();

<ComboBox x:Name ="myTestCmb" DisplayMemberPath="Name" />

【讨论】:

    【解决方案2】:

    尝试设置combxManufacturer.ItemsSource = dataTableManufacturers.Rows;,而不是单独添加行。

    【讨论】:

      【解决方案3】:

      尝试设置combxManufacturer.ItemsSource属性

      combxManufacturer.ItemsSource = dataTableManufacturers.AsDataView;
      

      并且不需要添加项目

      【讨论】:

        【解决方案4】:

        DisplayMemberPath 应该是"[VALUE]",因为您打算使用this indexer(不是属性)来获取数据。有关详细信息,请参阅 MSDN 上的 binding path syntax

        除此之外(重要!),“WPF 方式”是设置控件的 ItemSource,而不是手动添加到 Items 集合。

        【讨论】:

        • 非常感谢!我是初学者,所以发现您的回答很有价值!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-10
        • 1970-01-01
        • 1970-01-01
        • 2017-06-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多