【发布时间】:2019-07-30 07:47:52
【问题描述】:
我有一个与访问数据库文件绑定的 Listview,我正在尝试将所选项目绑定到 SelectedEmployee 属性。
<ListView x:Name="ListEmployee"
SelectedItem="{Binding SelectedEmployee}"
ItemsSource="{Binding Path=Employees}">
<ListView.View>
<GridView>
<GridViewColumn Header="Employee ID" DisplayMemberBinding="{Binding ID}"/>
<GridViewColumn Header="Employee Name" DisplayMemberBinding="{Binding FullName}"/>
</GridView>
</ListView.View>
</ListView>
当我为此搜索解决方案时,列表中项目的类与绑定到的属性相同。我的问题是我不知道构成列表中项目的类是什么。
目前,这是我填写列表的方式:
string connectionString = ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString;
string cmd = "SELECT ID, FullName FROM Employees";
OleDbDataAdapter Adapter = new OleDbDataAdapter(cmd, connectionString);
Adapter.Fill(Data, "Employees");
ListEmployee.DataContext = Data;
我用于SelectedEmployee 的类是:
public class Employee
{
public int ID { get; set; }
public string FullName { get; set; }
}
我已经测试过 ListEmployee.SelectedItem is SelectedEmployee 是否返回 false,我找不到方法如何创建与列表中相同类型的类
所以我的问题是如何绑定选定项但不知道组成选定项的类。任何想法都会有所帮助
【问题讨论】:
-
ListView(或其父元素之一)的 DataContext 应设置为所谓的视图模型对象,它是具有(至少)两个属性的类的实例,一个包含所有员工列表的集合类型属性,以及所选员工的一个属性。您可以在网上搜索“MVVM”。
标签: c# wpf listview ms-access data-binding