【问题标题】:Binding data from mysql to wpf application将数据从 mysql 绑定到 wpf 应用程序
【发布时间】:2017-07-23 20:30:03
【问题描述】:

我使用 mysqlconnector 通过填充 DataSet 从数据库中获取数据:

DataSet myData = new DataSet();
MySqlDataAdapter adapter;

string query = "Select * from visitors";
string table = "visitors";
adapter = new MySqlDataAdapter(query, connection);

adapter.Fill(myData, table);

我尝试将 myData 中的数据绑定到 DataGrid (MainWindow.xaml.cs):

    var data = myData.Tables["visitors"].AsEnumerable();
    dataGrid.ItemsSource =  data;

MainWindow.xaml:

`<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
    <DataGridTextColumn Header="First name" />
    <DataGridTextColumn Header="Second name" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
    <DataTemplate>
        <DockPanel>
            <TextBlock Text="{Binding Path=firstName, TargetNullValue=no data}"/>
            <TextBlock Text="{Binding Path=secondName,TargetNullValue=no data}"/>
        </DockPanel>
    </DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>`

我唯一得到的是 23 个空白行 - 与 mysql 表中的数字相同。我用谷歌搜索了这个问题,但找不到合适的答案。

【问题讨论】:

    标签: c# mysql wpf


    【解决方案1】:

    我会给你一个理论上的解决方案。

    1. 创建一个 Observable 集合(例如:ObservableCollection&lt;Person&gt;),其中 Person 具有您在代码中提到的 firstNamesecondName 之类的属性。
    2. 用您从Database 检索到的Dataset 填充ObservableCollection
    3. 最后BindObservableCollectionDataGridItemSource

    在你上面的代码sn-p中你不是BindingItemSource,你刚才提到了Properties

    &lt;DataGrid x:Name="dataGrid" AutoGenerateColumns="False" IsReadOnly="True" ItemsSource="{Binding Path = PersonCollection}"&gt;

    【讨论】:

    • 谢谢,它成功了。但是,在 DataGrid ItemsSource="{Binding Path = PersonCollection}" 中指定 ItemsSource 不起作用。相反,我在 MainWindow.xaml.cs 中设置 dataGrid.ItemsSource = personCollection; 然后` ` 在MainWindow.xaml 内。
    猜你喜欢
    • 2013-07-08
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    相关资源
    最近更新 更多