2010-07-02 2 views
1

Я пытаюсь создать собственный список, который содержит список объектов. Хотя, когда это установлено как в Xaml, так и в коде, я получаю «Неверную ошибку разметки». Ниже описано, как я настраиваю PropertyKey и свойство.Невозможно создать свойство зависимости типа коллекции

private static readonly DependencyPropertyKey ItemSourcePropertyKey = DependencyProperty.RegisterReadOnly(
     "ItemSource", 
     typeof(List<object>), 
     typeof(MultiSelectComboBox), 
     new FrameworkPropertyMetadata(null)); 

public static readonly DependencyProperty ItemSourceProperty = ItemSourcePropertyKey.DependencyProperty; 

Поле является:

public List<object> ItemSource 
    { 
     get { return (List<object>)this.GetValue(ItemSourceProperty); } 
     set { this.SetValue(ItemSourceProperty, value); } 
    } 

Ошибки я получаю:

{"Cannot create instance of 'Window1' defined in assembly 'GroupExpansion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Exception has been thrown by the target of an invocation. Error in markup file 'Window1.xaml' Line 1 Position 9."} 

Кто привязал DependencyProperty к списку раньше? Я познакомился с несколькими учебниками, но когда я пытаюсь подражать учебникам, они попадают на его лицо. Список и свойство находятся в файле, который расширяет UserControl. Если вам нужна дополнительная информация, просто спросите. Я уже несколько дней стучал головой с клавиатуры. Кажется, кругом крутиться.

Приветствия

+0

Есть ли внутреннее исключение из того, что вы упомянули выше? –

+0

Да, очень полезно: {«Исключение было выбрано целью вызова».} Источник: «PresentationFramework». О, я заметил, что я оставил конструктор для Property, который выполняется в конструкторе класса, и присваивает ему пустой список . – Tim

+0

Ага, немного больше информации. Я изменил список на ObservableCollection, и после этого он сделал следующую ошибку в InnerException: свойство ItemSource было зарегистрировано как доступное только для чтения и не может быть изменено без ключа авторизации. Теперь, чтобы найти способ обойти это. – Tim

ответ

1

Найдено решение, Казалось бы, что нуждается в Dependency Property, чтобы прикрепить к ObservableCollection. А затем для привязки это необходимо, чтобы быть не читаемым только, чтобы DependencyPropertyKey можно было отбросить и заменить только DependencyProperty. Было бы невероятно полезно, если бы кто-то создал для этого настоящую страницу.