Wpf 为什么不显示DisplayMemberPath?

Wpf 为什么不显示DisplayMemberPath?,wpf,xaml,Wpf,Xaml,这是非常基本的,不确定为什么DisplayMemberPath没有显示,它只显示类名 <ListView x:Name="lv" ItemsSource="{Binding ElementName=root, Path=ShoppingList}" DisplayMemberPath="Name"> <ListView.View> <GridView>

这是非常基本的,不确定为什么DisplayMemberPath没有显示,它只显示类名

    <ListView x:Name="lv" ItemsSource="{Binding ElementName=root, Path=ShoppingList}" DisplayMemberPath="Name">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Item" Width="150"/>
            </GridView>
        </ListView.View>
    </ListView>
不知道我错过了什么

public class Product
{
    public String Name { get; set; }
    public int Price { get; set; }
    public String Info { get; set; }

}
根据文件中的备注:

此属性是定义描述如何显示数据对象的默认模板的简单方法

这在GridView中不起作用,您可以在GridView中为每个列的模板设置属性:

此属性将数据源中的数据类型与列相关联,以便该列显示该类型的一组值


但是您通常不会使用ListView,而是使用更简单的ListBox。

DisplayMemberBinding不使用绑定,我认为它应该与任何具有ItemsSource的控件一起使用。它与它一起工作。我肯定我在某个地方读到过。不,正如你所意识到的,它不适用于GridView。这没有意义,因为您有多个列。如果没有GridView,它当然可以工作。你有一个观点,它确实可以工作。一般来说,它是没有绑定的,所以我一开始不确定。
public class Product
{
    public String Name { get; set; }
    public int Price { get; set; }
    public String Info { get; set; }

}
<ListView ItemsSource="{Binding ElementName=root, Path=ShoppingList}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Item" Width="150"
                            DisplayMemberBinding="{Binding Name}"/>
        </GridView>
    </ListView.View>
</ListView>
<ListView ItemsSource="{Binding ElementName=root, Path=ShoppingList}"
          DisplayMemberPath="Name"/>