2013-09-07 2 views
2

У меня есть класс, который наследует IDictionary с именем ResourceDictionary.
Также у меня есть еще один класс с атрибутом DictionaryKeyProperty с именем Style.
DictionaryKeyProperty имеет имя TargetType. содержимое файлаКаждая запись словаря должна иметь связанный ключ

XAML:

<ResourceDictionary 
      xmlns="clr-namespace:Test;assembly=Test" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    <Style TargetType="test" /> 
</ResourceDictionary> 

Это дает ошибку Each dictionary entry must have an associated key.

public class ResourceDictionary : IDictionary, ICollection, IEnumerable, INameScope, ISupportInitialize 
{ 
    ... 
} 

[ContentProperty("Setters"), DictionaryKeyProperty("TargetType")] 
public class Style : Sealable, INameScope, IQueryAmbient, IResources 
{ 

    private Type _TargetType; 
    [Ambient] 
    public Type TargetType 
    { 
     get { return _TargetType; } 
     set 
     { 
      CheckSealed(); 
      if (value == null) 
       throw new ArgumentNullException("value"); 
      _TargetType = value; 
     } 
    } 

    ...... 

} 

Что я делаю неправильно?
Как я могу решить эту проблему?

P.S .: Я хочу создать легкую структуру, включающую систему зависимостей, такую ​​как WPF.

ответ

1

Компилятор XAML жалуется, потому что в вашем определении стиля отсутствует атрибут Key.

Изменение его:

<Style x:Key="someKey" TargetType="test" /> 

.. сделает ошибку уйти, но так как я подозреваю, что вы хотели объявить стиль по умолчанию для вашего контроля потребуется вам, чтобы всегда ссылаться на этот стиль, используя

<Test Style="{StaticResource someKey}" /> 

Это, вероятно, не то, что вы имели в виду.

Не могли бы вы уточнить вопрос с кодом для класса «тест»?

+0

- это ответ ..? или новый вопрос? Я не могу решить. Могу ли я предложить удалить этот вопрос и объяснить, как он мог бы использовать «Словарь»? – Default

+0

Я хочу создать небольшую структуру, используя System.Xaml и WPF. – Kation

+0

Подробнее пожалуйста. Я не могу следовать за тобой. –

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