如何在ListView上只显示一个项目的属性
本文关键字:一个 项目 属性 ListView 显示 | 更新日期: 2023-09-27 18:10:55
我在ListView上添加了类"Employee"的对象列表,我希望它只显示属性"Name",但是当项目被选中时,我希望它捕获对象"Employee"以添加到另一个列表。
这是我的代码。它在ListView上显示Employee对象。我想让它显示属性Name private void PopulateEmployeeList()
{
List<Employee> staff = Presenter.GetEmployee();
foreach (Employee person in staff)
lstEmployee.Items.Add(person);
}
XAML
<Border Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" Width="230" >
<ListView Name="lstFuncionarios" />
</Border>
你可以在你的xaml:
<ListView x:Name="lv" HorizontalAlignment="Left" Height="149" Margin="359,111,0,0" VerticalAlignment="Top" Width="138">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
</ListView>
你可以为你的ListView定义ItemContainerStyle:
<ListView Name="lstFuncionarios">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<TextBlock Text="{Binding Name}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
如果你不知道ListViewItem的最终外观,这个解决方案是很好的,所以你可以在你想要的时候重写它。
如果您只需要显示名称而不需要其他内容- @S_Lord的解决方案很好:
lstFuncionarios.DisplayMemberPath = "Name";
或
<ListView Name="lstFuncionarios" DisplayMemberPath="Name"/>
希望能有所帮助