我一直在尝试查看是否有一种简单/聪明的方法来实现与 ListBox.SelectedItems 的绑定(bind)。如果您自己尝试过,您就会知道,使用 BindingExtension 的标记绑定(bind)将不起作用——该属性不支持它。因此,您需要为 SelectionChanged 连接一个处理程序并尝试该路线。我得到的最接近的是这篇文章:
http://alexshed.spaces.live.com/blog/cns!71C72270309CE838!149.entry
更新:上述博客不再可用,该作者当前博客is here我能找到的与引用的博客文章最接近的是 this StackOverflow answer .
它在一个方便的附加属性中实现了所有必要的 C#。但它将“绑定(bind)”实现为单向、目标到源。我想要双向绑定(bind)。
有任何想法吗?
最佳答案
我找到了一个优雅的解决方案,我刚刚抽出时间来写一个 blog post about it .
我所做的是创建一个附加属性 SynchronizedSelectedItems,您可以在 ListBox(实际上是 DataGrid)上设置它。您将它数据绑定(bind)到一个集合,然后,通过一点魔术,ListBox 上的 SelectedItems 属性和您的集合保持同步。您可以从我的博客文章中下载所有代码。
“魔术”是一个类,它监听任一集合中的 CollectionChanged 事件,并将更改传播到另一个集合。
关于wpf - ListBox.SelectedItems 的双向手动绑定(bind)实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/414074/