我一直在试图看看是否有一种简单/聪明的方法来实现对ListBox.SelectedItems的绑定.如果你已经尝试过,你会知道,使用BindingExtension的标记绑定将不起作用 - 该属性不支持它.因此,您需要连接SelectionChanged的处理程序并尝试该路由.我得到的最接近的是这篇文章:
http://alexshed.spaces.live.com/blog/cns!71C72270309CE838!149.entry
更新:上面提到的博客不再可用,作者的当前博客在这里,我能找到的最接近的参考博客文章就是这个StackOverflow答案.
它在一个方便的附加属性中实现了所有必要的C#.但它实现了"绑定"作为单向,目标来源.我想要双向绑定.
有任何想法吗?
我找到了一个优雅的解决方案,我刚刚抽出时间写一篇关于它的博客文章.
我所做的是创建一个附加属性,可以在ListBox(或实际上是DataGrid)上设置的SynchronizedSelectedItems.您将此数据绑定到一个集合,然后,通过一些魔术,ListBox上的SelectedItems属性和您的集合保持同步.您可以从我的博客文章下载所有代码.
"magic"是一个类,它侦听任一集合中的CollectionChanged事件,并将更改传播到另一个集合.