在WPF中的组合框中显示MySQL数据库的列?我只显示'System.Data.DataRowView'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WPF中的组合框中显示MySQL数据库的列?我只显示'System.Data.DataRowView'相关的知识,希望对你有一定的参考价值。

我正在尝试获取表格列中的值以填充组合框的选项。每当我尝试时,组合框都会填充正确数量的选项,但不是列的值,而是选项都是'System.Data.DataRowView'。

XAML

<ComboBox x:Name="ComboBox_1" HorizontalAlignment="Left" Margin="124,23,0,0" VerticalAlignment="Top" Width="95" Height="42" ItemsSource="{Binding}"/>

C#

public MainWindow()
{
    InitializeComponent();
    string connectionString = "SERVER=localhost;DATABASE=dbname; UID=myPC;Password=myPW;";

    mysqlConnection connection = new MySqlConnection(connectionString);

    MySqlCommand cmd = new MySqlCommand("Select columnname from tablename", connection);
    connection.Open();


    DataTable dt = new DataTable();
    dt.Load(cmd.ExecuteReader());
    connection.Close();

    ComboBox_1.DataContext = dt;

}
答案

您应该像这样设置DisplayMemberPath。

<ComboBox DisplayMemberPath="YourColumnName"/>

并将ComboBox的ItemsSource设置为dt.DefaultView。

ComboBox_1.ItemsSource = dt.DefaultView;

您只能在ComboBox中显示一列。如果要显示所有列,可以使用DataGrid,也可以为ComboBox定义ItemTemplate。

以上是关于在WPF中的组合框中显示MySQL数据库的列?我只显示'System.Data.DataRowView'的主要内容,如果未能解决你的问题,请参考以下文章

C#WPF ComboBox复杂的自定义弹出数据显示

WPF:尝试根据组合框中的选择更改可见性

WPF 双向绑定不适用于组合框中的复选框

从组合框中的访问数据库重复

如何使 WPF 列表框中的列对于所有项目具有相同的宽度?

wpf的组合框中显示新的选定项后如何显示对话框?