2011-11-07 49 views
3

我只是wpf中的新成员,并计划使用列表框来生成最近打开或关闭的项目。每打开一个文件,它都会被永久添加到类型为listbox的资源字典中。以编程方式从资源字典中添加删除项目

另一方面,除了列表框项目是一个按钮来删除链接。

这可能吗?

回答

6

ResourceDictionary是IDictionary。您可以使用indexer添加/覆盖项目。

myResourceDictionary["somekey"] = someObject;

而且你可以使用Add()Remove()方法。

至于你的情况,我宁愿用ObservableCollection来代替你的列表框和bind

+0

+1结合一个ObservableCollection:这就是WPF方式毕竟 – stijn

+0

我们可以添加项目到ResourceDictionary中,声明为具有源属性集合的合并字典吗? – Grigory

0

这的确是可能的,除了bitbonk的答案,我会这样说:

你可能想有一个ObservableCollection充满ListBoxItemsListBoxItem是WPF用于渲染的类,您通常不会自己创建这些类。如果您将数据源设置为(例如)FileInfo对象的集合,则可以使用数据模板来显示列表中的这些项目,但是您希望显示这些项目。这也有利于您不必编写代码将数据对象转换为单独的类,仅用于显示目的。

(你很可能使用自己的数据/模型类型而不是FileInfo,但我不知道有足够的了解您的解决方案建议之一。)

相关问题