将列表视图绑定到另一个类中的属性
Posted
技术标签:
【中文标题】将列表视图绑定到另一个类中的属性【英文标题】:Binding listview to a property in another class 【发布时间】:2012-07-11 08:25:53 【问题描述】:我有以下静态类
static class ContactSettings
static ObservableCollection<Contact> _contactCollection = new ObservableCollection<Contact>();
public static ObservableCollection<Contact> ContactCollection
get return _contactCollection;
Contact 是一个具有 Contact.Name 和 Contact.Address 字符串属性的类。
我想将上面的 ContactCollection 绑定到驻留在 Window 中的 WPF ListView。
这是我的 ListView XAML 定义
<ListView x:Name="_contactListView" DataContext="Binding Path=ContactSettings" ItemsSource="Binding ContactSettings.ContactCollection">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" DisplayMemberBinding="Binding Name" />
<GridViewColumn Header="Address" DisplayMemberBinding="Binding Address" />
</GridView>
</ListView.View>
</ListView>
绑定不起作用。我很确定问题出在 XAML 中的 DataContext 和 ItemSource 属性。如果我在 Window 类中移动 ContactCollection 并将 DataContext 设置为 Self,我可以让代码工作。问题是我不知道如何告诉 ListView 绑定到另一个类中的集合。感谢您的帮助。
【问题讨论】:
【参考方案1】:问题是您不能绑定到静态类,因为绑定需要类的实例。
您可以尝试这样的解决方法SO question
【讨论】:
以上是关于将列表视图绑定到另一个类中的属性的主要内容,如果未能解决你的问题,请参考以下文章
当我单击列表视图的操作项时,将文本从列表视图传递到另一个活动