2009-06-24 3 views
3

Я пытаюсь использовать общие типы в разделе Windows .Resources в коде XAML. Чтобы прикрепить уведомление для коллекции объектов мой родовой коллекции наследует от ObservableCollection, как показано ниже:Использование общих типов в Window.Resources

public class PresentationModalCollection<T> : ObservableCollection<T> 
    { 
     public PresentationModalCollection(List<T> list) : base(list) 
     { 

     } 

    } 

Существует метод расширения, который возвращает ObservableCollection для списка, как показано ниже:

public static class ExtensionMethods 
    { 
     public static PresentationModalCollection<T> ToObservableCollection<T>(this List<T> list) 
     { 
      return new PresentationModalCollection<T>(list); 
     } 
    } 

Теперь, Я хочу использовать PresentationModalCollection в моих Window.Resources, как показано ниже:

<Window.Resources> 
     <LearningWPF:PresentationModalCollection x:Key="customers"> 
      <LearningWPF:Customer FirstName="Mohammad" LastName="Azam" /> 
     </LearningWPF:PresentationModalCollection> 


    </Window.Resources> 

конечно, приведенный выше код не работает. Есть ли способ сделать это, не создавая класс CustomerCollection, который наследуется от ObservableCollection?

+1

Я думаю, что он не поддерживается в .NET 3.5, но для .NET 4.0 он будет поддерживаться. Проверьте следующую ссылку:> http://msdn.microsoft.com/en-us/library/dd489466(VS.100).aspx – azamsharp

ответ

2

У Майка Хиллберга есть extensions, который может помочь в этом и работать очень хорошо. Я согласен с тем, что создание типа CustomerCollection и collection для каждого типа, который вы хотели бы обернуть, было бы чрезмерным. Sacha Barber также имеет решение использовать Generics в XAML, но его веб-сайт, похоже, на данный момент превзошел свой лимит пропускной способности.

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