【发布时间】:2015-09-09 10:21:43
【问题描述】:
有没有什么方法可以更新绑定了Dictionary 的ListBox 控件,而无需在每次字典更改时重置其DataSource 属性?我不喜欢这个解决方案的原因是它强制ListBox 控件跳转到第一项,如this 等其他问题中所述。
这是一个重现此行为的最小示例 -- https://bitbucket.org/ntrophimov/updating_issue(在 MainForm.cs 文件中读取大约 20 行代码)
这个问题还有其他解决方案吗?
是否有任何字典实现我可以在其中操作项目(添加和删除它们)并且这些更改将立即在 ListBox 控件中表示而不刷新其全部内容?
【问题讨论】:
-
所以你想构建类似
ObservableDictionary的东西? -
@Jasper 也许,我只是想修复这个更新行为
-
嗯.. 如果您担心视觉选择,您可以将其保存为
Selected={Binding SelectedItem}并在更新ItemsSourcesetter/getter 后将其恢复 -
@Jasper 我使用的是 WinForms,而不是 WPF(查看标签)
-
但是我的解决方案看起来不错(如果我们为 WinForms 改写它)?还是您在寻找其他东西?