【发布时间】:2014-10-21 06:04:58
【问题描述】:
我有一个弹出 ListView,以这种方式声明:
<ListView x:Name="ShowFileLV"
ItemsSource="{Binding EmployeeCollection}"
DataContext="{Binding}"
SelectedItem="{Binding Path=SelectedEmployee}"
SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Width="140"
DisplayMemberBinding="{Binding Name}">
<GridViewColumnHeader Click="SortClick"
Tag="Name"
Content="Name" />
</GridViewColumn>
<GridViewColumn Width="140"
DisplayMemberBinding="{Binding ID}">
<GridViewColumnHeader Click="SortClick"
Tag="ID"
Content="ID" />
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
列表和排序工作正常。我的问题是,我想在选择一行时直接更新 SelectedEmployee(不确定 ListViewItem 是否是正确的选择),甚至更好,只获取 ID 或名称:
public ListViewItem SelectedEmployee
{
get
{
return _selectedEmployee;
}
set
{
_selectedEmployee= value;
}
}
这一直有效,直到我使用了一个加载了字符串列表的 ListBox(而不是 ListView),每个字符串都包含名称和 ID,就像这个
<ListBox Name="ShowFileLV"
SelectionMode="Single"
SelectedValue="{Binding Path=Employee}"
Style="{StaticResource ListBoxStyle}" ItemsSource="{Binding Path=ListPopupItems}" >
</ListBox>
使用公共字符串,例如:
public String Employee
{
get
{
return _employee;
}
set
{
_employee= value;
OnPropertyChanged("Employee");
}
}
当我选择一行时,它会自动设置公共字符串 Employee,无需代码。 我如何使用 ListView 和 Collections 来完成他的工作?
【问题讨论】:
标签: c# wpf listview data-binding