如何在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>

如何在ListView上只显示一个项目的属性

你可以在你的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"/>

希望能有所帮助