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