xaml代码:
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
<xctk:CheckComboBox x:Name="Cb_Blowshell" HorizontalAlignment="Left" Margin="195,9,0,0" Grid.Row="2" VerticalAlignment="Top" Width="267" DisplayMemberPath="prod_name" ValueMemberPath="Id" ItemsSource="{Binding}"/>
c#code
DataTable dt = new DataTable("blow_shell");
String Qry = "select Id,prod_name from blow_shell where weight=" + Txt.Text.Trim().ToString() + "";
SqlHelper.Fill_dt(dt, Qry);
Cb_Blowshell.ItemsSource= dt.DefaultView;
将数据表数据绑定到组合框的简短代码;但我的显示成员显示System.Data.DataRowView
。
请帮我解决。
答案 0 :(得分:0)
您无法使用以下代码绑定数据:
Cb_Blowshell.ItemsSource= dt.DefaultView;
我想您希望将数据库表的prod_name
列显示为CheckComboBox
中每个项目的内容。
试试这个(在&#34; Fill_dt&#34;方法调用之后插入):
List<string> names = new List<string>();
for (int i = 0; i < dt.Rows.Count; i++)
{
String prodName = Convert.ToString(dt.Rows[i]["prod_name"]);
names.Add(prodName );
}
Cb_Blowshell.ItemsSource = names;
顺便说一下:
您的输出&#34; System.Data.DataRowView
&#34;是一个典型的示例,当您尝试绑定到源类型时,DataRowView
不适合目标控件(在您的情况下:CheckComboBox
的项目)。
在这种情况下,您将看到绑定源对象的ToString
方法的输出。所以在这里你看到&#34; ToString&#34;的输出。执行此操作的Object
基类的方法:this.GetType().ToString();
。