【问题标题】:WPF: Xaml, create an observable collection<object> in xaml in .NET 4.0WPF:Xaml,在 .NET 4.0 的 xaml 中创建一个可观察的集合<object>
【发布时间】:2014-02-26 17:10:41
【问题描述】:

the web site 表示您可以在 .NET 4.0 中使用

我似乎做不到,我需要什么组件引用和 xmlns'

以下操作无效

xmlns:coll="clr-namespace:System.Collections.ObjectModel;assembly=mscorlib"

<coll:ObservableCollection x:TypeArguments="x:Object">
    <MenuItem Command="ApplicationCommands.Cut"/>
    <MenuItem Command="ApplicationCommands.Copy"/>
    <MenuItem Command="ApplicationCommands.Paste"/>
</coll:ObservableCollection>

【问题讨论】:

    标签: wpf xaml .net-4.0 observablecollection


    【解决方案1】:

    ObservableCollection<T>System 程序集中定义,因此您的命名空间应为:

    xmlns:coll="clr-namespace:System.Collections.ObjectModel;assembly=System"
    

    您可以在顶部的MSDN 中找到该信息:

    命名空间: System.Collections.ObjectModel
    程序集: 系统(在 System.dll 中)
    用于 XAML 的 XMLNS:未映射到 xmlns。

    请注意,程序集在 v3.5 和 v4.0 之间发生了变化。在 v3.5 中,它是在 WindowsBase 程序集中定义的。但是,这是一个缺点,因为您经常希望在不引用任何 WPF 程序集的情况下使用该类。所以也许这就是他们改变它的原因。

    此外,您还应该检查this blog post,它表示新的 XAML 功能尚未在 VS 中完全可用!

    【讨论】:

    • 我试过这个,但后来我得到一个蓝色的波浪线,上面写着The name "ObservableCollection" does not exist in the namespace "clr-namespace:System.Collections.ObjectModel;assembly=System".。在代码中使用ObservableCollection 确实有效。
    【解决方案2】:

    我意识到这是一个老问题,但我在使用 Windows 应用商店应用程序时遇到了同样的问题。在我发现几个问题之后,在 XAML 中定义这样一个集合的最简单的原因就是简单地创建一个子类:

    namespace my.name.space {
        public class ObservableMyObjectCollection: ObservableCollection<MyObject> {
        }
    }
    

    然后像这样使用它

    <local:ObservableMyObjectCollection
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:my.name.space">
    
       <MenuItem Command="ApplicationCommands.Cut"/>
       <MenuItem Command="ApplicationCommands.Copy"/>
       <MenuItem Command="ApplicationCommands.Paste"/>
    
    <local:ObservableMyObjectCollection>
    

    【讨论】:

      猜你喜欢
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      相关资源
      最近更新 更多