【发布时间】:2014-08-18 16:37:13
【问题描述】:
我有以下两个类(名称已更改),它们将用于使用嵌套列表框填充 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中的Objects,每个item中嵌套的listbox正确显示每个BabyObject。
问题: 如果我使用 UI 编辑 ID、Field1 或 Field2 值,内存中的 Observable Collection 也会更新 - 当然它会更新,因为绑定。但是,如果我编辑任何 BabyObject 的值,内存中的 List 不会改变。
因此,当我更改 ListView 的 Controltemplate(以便值显示在标签而不是文本框中)时,BabyObject 值会变回原来的值。
我知道在代码中更新列表时,人们经常在更新界面时遇到问题,但不是这样吗?
我很乐意回答问题并包含更多代码,但 XAML 相当大。同时,我将制作一个单独的示例列表视图,看看是否可以在较小的控件上进行测试。
谢谢
【问题讨论】:
-
也许你有一个
Binding错误?您能否展示您如何将数据绑定到您的BabyObject属性? -
如果您不重复提交的名称,它会更容易理解。如果 BabyObject 没有更新,那么您没有正确配置绑定。显示您的 XAML。你真的看到在 BabyObject 上被调用但没有设置?
标签: c# wpf listview binding listbox