【发布时间】:2013-11-19 14:12:39
【问题描述】:
我想通过 xaml 在 Net 4.5 中使用 ObservableCollection 类。
这就是我在 xaml 中指定命名空间的方式:
xmlns:coll="clr-namespace:System.Collections.ObjectModel;assembly=System"
而集合声明是这样的:
<ic:MyControl.Resources>
<coll:ObservableCollection x:TypeArguments="commands:Command" x:Key="CommandCollection"/>
</ic:MyControl.Resources>
我得到这个编译错误:
XML 命名空间中不存在标记“ObservableCollection” 'clr-namespace:System.Collections.ObjectModel;assembly=System'。
我认为程序集名称可能不正确,但是在这里的论坛上搜索说它是系统程序集。谁能告诉我怎么回事?
【问题讨论】:
-
如果您在将被编译为 Baml 的 WPF 控件中声明它,那么您将被 Xaml2006 语言规范困住,并且您不能在除根元素之外的任何地方使用
x:TypeArguments。 Xaml2009 允许它在任何地方使用,但您只能将 Xaml2009 用于在运行时手动加载的 Xaml 文件。 -
将
ObservableCollection<T>保留在视图中还有什么意义?您的代码出了点问题。