我的WPF列表视图不会绑定

时间:2015-12-09 13:16:27

标签: c# wpf listview

这似乎是一个奇怪的问题,但我被卡住了。 我在我的wpf应用程序中使用ListViews动态绑定到列表集合。 除了一个。我只是看不出有什么不对/不同。 这是我的模特: 公共类WorkUnitCost {     public string ErrorMessage {get;组; }     public int WorkUnitCostId {get;组; }     public bool IsUploaded {get;组; }     public string WorkUnitCostRef {get;组; }     public string说明{get;组; }     public double Cost {get;组; }     public bool IncludesVAT {get;组; }     public string CompanyRef {get;组; }     public bool Active {get;组; }     公共布尔存在{get;组; }     公共字符串说明     {         得到{返回说明+“£”+费用; }     } } 这是我的收藏: 公共列表< WorkUnitCost> WorkUnitCost = new List< Model.WorkUnitCost>(); 这是我的代码隐藏: lvWorkItems.ItemsSource = WorkUnitCost; 这是我的标记:      < ListView x:Name =“lvWorkItems”>         < ListView.View>             < GridView的>                 < GridViewColumn Header =“Description”Width =“190”DisplayMemberBinding =“{Binding Description}”/>                 < GridViewColumn Header =“IsVat”Width =“50”DisplayMemberBinding =“{Binding IncludesVAT}”/>                 < GridViewColumn Header =“Cost”Width =“75”DisplayMemberBinding =“{Binding Cost}”/>             < / GridView的>         < /ListView.View>     < /&的ListView GT; 通过设置断点,我知道有两个填充字段的项目。然而,没有任何东西可视化显示

2 个答案:

答案 0 :(得分:4)

如果您在将项目设置为ItemsSource后向其添加项目,则您的用户界面将不会收到有关更改的通知。

您必须使用一些实现INotifyCollectionChanged的集合。 ObservableCollection<T>是最常见的选择。

答案 1 :(得分:1)

我认为您需要为您的模型实施INotifyCollectionChanged 而不是List尝试使用ObservableCollection<WorkUnitCost>来启用视图与模型数据同步。实际上,如果您使用MVVM确保WPF的最佳做法会更好,您会在此link找到有关如何使用ObservableCollection和{{ 1}} INotifyPropertyChanged设计模式