WPF中组合框的DisplayMemberPath,C#
我有WPF中组合框的DisplayMemberPath,C#,c#,wpf,combobox,datatable,datarow,C#,Wpf,Combobox,Datatable,Datarow,我有数据表,其中包含必要的数据行,我想在组合框中显示这些数据行。 第二个DataColumn称为VALUE,我想将其设置为DisplayMember 但是,我在组合框中看到的所有内容都是根据数据行数的空行。 我做错了什么 DataTable dataTableManufacturers; dm = new DatabaseManagement.DatabaseManagement(Properties.Settings.Default.DBServer,Properties.Settings.D
数据表
,其中包含必要的数据行
,我想在组合框
中显示这些数据行。
第二个DataColumn
称为VALUE
,我想将其设置为DisplayMember
但是,我在组合框中看到的所有内容都是根据数据行数的空行。
我做错了什么
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.Rows
而不是单独添加行。DisplayMemberPath
应该是“[VALUE]”
,因为您打算使用(而不是属性)获取数据。有关更多信息,请参阅MSDN上的
(重要的!)“WPF方法”是设置控件的
ItemSource
,而不是手动添加到Items
集合。尝试设置combxManufacturer.ItemsSource
属性
combxManufacturer.ItemsSource = dataTableManufacturers.AsDataView;
而且不需要添加项目我试过了,我知道它确实有效
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" />
private DataTable testTable=new DataTable();
testTable.Columns.AddRange(新的DataColumn[]
{
新数据列(“ID”,类型(int)),
新数据列(“名称”,类型(字符串)),
});
var row=testTable.NewRow();
行[0]=1;
行[1]=“我的名字”;
testTable.Rows.Add(行);
myTestCmb.ItemsSource=TestTable.AsDataView();
尝试设置combxManufacturer.ItemsSource=dataTableManufacturers代码>而不是单独添加行。@paul你说得对,但需要帮助dataTableManufacturers。行。干杯!非常感谢你!我是初学者,所以觉得你的答案很有价值!