Ara*_*and 8 wpf xaml .net-4.0 observablecollection
该网站称你可以在.NET 4.0中使用
我似乎无法做到这一点,我需要什么assesmbly引用和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>
Run Code Online (Sandbox Code Playgroud)
geh*_*hho 11
ObservableCollection <T>在系统程序集中定义,因此您的命名空间应为:
xmlns:coll="clr-namespace:System.Collections.ObjectModel;assembly=System"
Run Code Online (Sandbox Code Playgroud)
您可以在MSDN顶部找到该信息:
命名空间: System.Collections.ObjectModel
程序集: System(在System.dll中)
XMLNS for XAML:未映射到xmlns.
请注意,程序集在v3.5和v4.0之间已更改.在v3.5中,它是在WindowsBase程序集中定义的.但是,这是一个缺点,因为您经常希望在没有引用任何WPF程序集的情况下使用该类.所以也许这就是他们改变它的原因.
此外,您还应该查看此博客文章,其中说新的XAML功能尚未在VS中完全可用!
我意识到这是一个老问题,但我在使用Windows应用商店应用时遇到了同样的问题.在我发现的几个问题之后,在XAML中定义这样一个集合的最简单方法是简单地创建一个子类:
namespace my.name.space {
public class ObservableMyObjectCollection: ObservableCollection<MyObject> {
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12717 次 |
| 最近记录: |