我有以下类(简称为简称):
namespace Test
{
class Class1
{
Class2 Property2 { get; set; }
Class3 Property3 { get; set; }
}
class Class2
{
string ColumnName { get; set; }
}
class Class3
{
string ColumnName { get; set; }
bool IsRequired { get; set; }
}
}
我实例化一个Class1
列表并填充它,然后将ListView
的数据绑定设置到我的列表中,如下所示。
List<Class1> pList = ...;
listView1.ItemsSource = pList;
我尝试将listView1.DisplayMemberPath
设置为"ColumnName"
,"Class2.ColumnName"
,"Class3.ColumnName"
,"Test.Class2.ColumnName"
,但似乎没有任何效果({{1}如果我将ListView
设置为DisplayMemberPath
或Class2
的列表,则显示Class3
,但我想保留ListView
列表{1}}作为我的
数据源。
这里有什么简单的我想念(我假设这很有可能)? (我已经远远地搜索了我的问题的解决方案(希望非常简单),但我还没有任何工作要做。)
答案 0 :(得分:2)
DisplayMemberPath只是一个快捷方式。 您始终可以使用更灵活的方式提供DataTemplate。
<DataTemplate x:Key="myTemplate">
<TextBlock Text="{Binding Property2.ColumnName}"/>
</DataTemplate>
<ItemsControl ItemTemplate="{StaticResource myTemplate}"/>
答案 1 :(得分:2)
您的内部类的名称是Property2和Property3,
所以我认为listView1.DisplayMemberPath的正确用法是:
listView1.DisplayMemberPath = "Property2.ColumnName";