如何仅在ListView上显示项目的属性

时间:2015-09-02 11:43:25

标签: c# wpf listview

我添加了一个班级对象列表"员工"在ListView上,我希望它只显示属性" Name"在它上面,但是当选择该项目时,我希望它能够捕获对象" Employee"添加到另一个列表。

这是我的代码。它在ListView上显示对象Employee。我希望它显示属性名称。

    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>

2 个答案:

答案 0 :(得分:1)

您可以为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"/>

希望,这有帮助

答案 1 :(得分:1)

您可以尝试使用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>