ListBoxItem 与 ListViewItem 的 GridViewColumn 绑定
Posted
技术标签:
【中文标题】ListBoxItem 与 ListViewItem 的 GridViewColumn 绑定【英文标题】:GridViewColumn Binding of ListBoxItem vs ListViewItem 【发布时间】:2018-12-14 05:34:20 【问题描述】:我一直在搞乱GridViews
,遇到了绑定到GridViewColumns
的奇怪行为。
使用此 XAML:
<ListView Name="lv">
<ListView.View>
<GridView>
<GridViewColumn Header="First" DisplayMemberBinding="Binding firstName"/>
<GridViewColumn Header="Last" DisplayMemberBinding="Binding lastName"/>
</GridView>
</ListView.View>
</ListView>
为什么下面会显示数据:
public class Foo : ListBoxItem // ListBoxItem
public string firstName get; set;
public string lastName get; set;
public partial class MainWindow : Window
public MainWindow()
InitializeComponent();
lv.Items.Add(new Foo firstName = "John", lastName = "Doe" );
lv.Items.Add(new Foo firstName = "Jane", lastName = "Smith" );
而以下不显示数据:
public class Foo : ListViewItem // ListViewItem
public string firstName get; set;
public string lastName get; set;
public partial class MainWindow : Window
public MainWindow()
InitializeComponent();
lv.Items.Add(new Foo firstName = "John", lastName = "Doe" );
lv.Items.Add(new Foo firstName = "Jane", lastName = "Smith" );
【问题讨论】:
【参考方案1】:为什么下面显示数据...而下面不显示数据
因为ListView
控件不会为ListViewItem
生成任何ListViewItem
容器。对于您添加到Items
或ItemsSource
集合的所有其他类型的对象,将生成一个隐式ListViewItem
容器。
有关物品容器的更多信息,请参阅this blog post。
【讨论】:
以上是关于ListBoxItem 与 ListViewItem 的 GridViewColumn 绑定的主要内容,如果未能解决你的问题,请参考以下文章