none
一个列表绑定问题 RRS feed

  • 问题

  • 在我的主窗口中有许多控件显示不同的绑定信息,比如TextBox绑定了对象的Name属性,在对主窗口的DateContent赋值时会自动呈现出来,

    win.DateContent = myClass;

    由于对myClass中有个属性是另一个对象,这个对象又包含许多属性,因此选择了使用ToggleButton按钮与Popup控件绑定的方式,点击按钮弹出Popup控件,Popup控件中呈现这个子对象的属性。

    唉,本人表达能力有限,前面的都是废话。具体的情况这里说不太清楚,我做了一个简化的例子,可以呈现我出现的问题。

    下载地址:http://pan.baidu.com/share/link?shareid=2270753700&uk=2651280174

    这个例子中有个拷贝对象的处理是模仿我实际处理中查询数据库创建的新对象示例,因为每次查询数据库构建的对象虽然与以前的对象是相同的,但是引用不同所以需要这样拷贝处理。

    这个例子是问题在于:

    1,第一次点击“类型数字”或“类型字母”列表会改变SubTest对象的属性值,比如“类型数字”列表选中的是1,现在选中2,SubTest的Type数字属性就由1变成了2;

    2,第二次点击“类型数字”或“类型字母”列表会将两个列表的选择变成空,原因应该是SubTest列表选中的SubTest对象引用失去了。

    就这两个问题缠绕着我一天了,头都大了。。。

    我感觉应该是我的绑定选择上出现了问题,但是尝试过其他的绑定方式还是达不到效果,这个能达到效果就是有这两点问题。

    现在发上来请各位帮忙分析一下这个是绑定问题还是我的处理有问题

    2013年8月22日 9:02

答案

  • 你的问题如果从设计上 使用一个CollectionViewSource 来保存你的SubText 集合,始终用CVS的过滤功能来对其筛选就不会有问题了。

    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2013年8月28日 7:19
    版主

全部回复

  • Hi blwuer,

      欢迎来到MSDN中文论坛。

      我没有办法重现你的问题,但是我看了你代码不光在DataContext 绑定的时候会新建Text实例之外,你还会激发lstType_SelectionChanged事件,是不是这个原因导致了算法逻辑问题。


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2013年8月23日 6:39
    版主
  • 我这里必须要激发SelectionChanged事件根据选择结果重新列出后面的可选择项

    2013年8月23日 9:06
  • 你的问题如果从设计上 使用一个CollectionViewSource 来保存你的SubText 集合,始终用CVS的过滤功能来对其筛选就不会有问题了。

    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2013年8月28日 7:19
    版主
  • 可是这样做不太好,因为实际的SubText 是一个很庞大的集合,全部保存在CollectionViewSource 很占用内存

    2013年8月28日 7:23