Использование универсальных типов в Window.Resources - PullRequest
3 голосов
/ 24 июня 2009

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

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

        }

    }  

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

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 Ответ

2 голосов
/ 24 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...