【发布时间】:2016-04-27 09:44:07
【问题描述】:
我在 youtube 教程之后在 Windows 窗体应用程序中学到了这一点,但我很难在 WPF 中实现相同的方法。
private void PopulateNames()
{
using (connection = new SqlConnection(connection_string))
using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM namesTable", connection))
{
DataTable namesTable = new DataTable();
adapter.Fill(namesTable);
Debug.Write(namesTable.AsDataView());
namesListBox.DisplayMemberPath = "name";
namesListBox.SelectedValuePath = "Id";
namesListBox.ItemsSource = namesTable.AsDataView();
}
}
ListView 的 XAML 是
<Grid>
<ListBox ItemsSource="{Binding}" DisplayMemberPath="name" x:Name="namesListBox"
HorizontalAlignment="Left" Height="209" Margin="90,59,0,0"
VerticalAlignment="Top" Width="341" SelectionChanged="listBox_SelectionChanged"/>
</Grid>
而且我不明白出了什么问题,我遵循了 MSDN 以及关于 stackoverflow 的许多问题,但由于我是这方面的新手,也许我没有得到我想要的答案。
所以我的问题是 WPF 和 Windows 窗体应用程序中的数据绑定有何不同 认为 WinForms 应用程序中的实现非常简单,我无法弄清楚如何使用 ListBox 填充来自数据库的条目。
【问题讨论】:
-
如果你调用了
PopulateNames方法,这应该可以工作。你有什么问题? -
您是否尝试过从 xaml 中删除 Itemsource DP 并进行检查。 Window DataContext 设置为什么?
-
@user2946329 你拯救了一天,我没有正确调用它
标签: c# wpf xaml datatable listbox