2010-04-23 2 views
7

the web site говорит, что вы можете в .NET 4.0WPF: Xaml, создать наблюдаемую коллекцию <object> в XAML в .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> 

ответ

11

ObservableCollection<T> определяется в системе узла , поэтому ваше пространство имен следует читать:

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

Вы можете найти эту информацию в MSDN в верхней части, где он говорит:

Пространство имен: System.Collections.ObjectModel
Монтаж: системы (в System.dll)
XMLNS для XAML: Не сопоставляется с xmlns.

Обратите внимание, что сборка изменилась между v3.5 и v4.0. В версии 3.5 он был определен в сборке WindowsBase. Однако это был недостаток, поскольку вы часто хотели бы использовать этот класс без ссылок на сборку WPF. Поэтому, возможно, именно поэтому они изменили его.

Кроме того, вы также должны проверить this blog post, в котором говорится, что новые функции XAML еще не доступны в VS!

9

Я понимаю, что это старый вопрос, но я столкнулся с одной проблемой при работе в приложении Windows Store. После нескольких проблем, я понял, что проще определить, почему такую ​​коллекцию в 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> 

 Смежные вопросы

  • Нет связанных вопросов^_^