WPF:Xaml,创建可观察集合<对象>;在 .NET 4.0 中的 xaml 中

发布于 2024-08-29 22:39:08 字数 523 浏览 8 评论 0原文

网站说你可以在.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>

the web site says you can in .NET 4.0

I cant seem to do it though, what assesmbly references and xmlns' do i need

the following does not work

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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

停滞 2024-09-05 22:39:08

ObservableCollection系统 程序集,因此您的命名空间应为:

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 程序集的情况下使用该类。所以也许这就是他们改变它的原因。

此外,您还应该检查 这篇博文,其中指出新的 XAML 功能在 VS 中尚未完全可用!

ObservableCollection<T> is defined in the System assembly, so your namespace should read:

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

You can find that information in MSDN at the top where it says:

Namespace: System.Collections.ObjectModel
Assembly: System (in System.dll)
XMLNS for XAML: Not mapped to an xmlns.

Note that the assembly has changed between v3.5 and v4.0. In v3.5 it was defined in the WindowsBase assembly. However, this was a drawback since you often would like to use the class without any WPF assemblies referenced. So maybe that is why they changed it.

Furthermore, you should also check this blog post, which says that the new XAML features are not completely available in VS yet!

时光是把杀猪刀 2024-09-05 22:39:08

我刚刚在开发 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>

I just came across the same problem while working on a Windows Store App. After several problems I figured out that the easiest why to define such a collection in XAML is to simply create a subclass:

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

And then use it like so

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文