我有以下两个类(名称已更改),用于使用嵌套的Listbox填充ListView
private class ObjectName //For the Listview
{
public int ID { get; set; }
public string Field1 { get; set; }
public string Field2 { get; set; }
public List<BabyObject> Field3 { get; set; }
}
private class BabyObject //For the nested Listbox
{
public string Field1 { get; set; }
public bool Field2 { get; set; }
}
我使用一些对象填充Observable Collection并将其设置为ListView的ItemsSource。
我的ListView正确显示每个ListViewItem中的对象,每个项目中的嵌套列表框正确显示每个BabyObject。
问题: 如果我使用UI编辑ID,Field1或Field2值,内存中的Observable Collection也会更新 - 当然它会更新,因为绑定。但是,如果我编辑任何BabyObject的值,则内存中的列表不会更改。
因此,当我更改ListView的Controltemplate(以便在标签而不是文本框中显示值)时,BabyObject值将更改回原始值。
我知道当代码更新列表时,人们经常无法更新界面,但不是这样吗?
我很乐意回答问题并包含更多代码,但XAML相当大。与此同时,我将制作一个单独的示例列表视图,看看我是否可以在较小的控件上测试它。
由于
答案 0 :(得分:0)
您需要在设置属性时引发属性更改通知 - 这会告知绑定更新。
答案 1 :(得分:0)
我已经解决了这个问题,但是我不知道是什么导致了它。
我尝试将Baby Objects的绑定设置为各种模式,并将List更改为Observable Collection。
这不起作用,所以我手动撤消了更改(不设置模式和使用List) - 现在它工作正常。
如果我使用界面编辑BabyObject值,则也会对List进行更改。
我也很困惑 - 抱歉浪费你的时间!