Может ли wpf связываться с классами Generics? - PullRequest
2 голосов
/ 04 июня 2010

Может ли WPF связываться с созданным мной универсальным классом?

It is basically Class<T> where T:MyInterface<br> Can I Bind to Class<T> and use MyInterface to Bind It?

Ответы [ 3 ]

2 голосов
/ 05 июня 2010

WPF может связываться с любым объектом CLR (или объектом COM, предоставляемым через CLR), включая экземпляры универсальных классов. Объект может дополнительно реализовать INotifyPropertyChanged или подкласс DependencyObject, чтобы изменения его свойств были обнаружены привязкой. Если нет, то значение свойства копируется один раз при оценке привязки, но не обновляется.

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

WPF имеет ограничение в отношении универсальных классов: синтаксический анализатор XAML не может создавать экземпляры универсальных классов или ссылаться на них в расширении разметки {x:Type }, поэтому для большинства случаев использования с XAML необходимо создать конкретный подкласс вашего универсального класса ссылка, что в вашем XAML. Исключением является то, что самый внешний элемент в XAML может использовать атрибут x:TypeArguments для указания универсального класса.

1 голос
/ 05 июня 2010

WPF может связываться с объектами CLR. Предоставляемые свойства должны поддерживать уведомление (ala, INotifyPropertyChanged) или должны относиться к типу, который позаботится об этом (ala, ObservableCollection).

После установки объект должен хорошо служить для предоставления данных.

1 голос
/ 04 июня 2010

Конечно, почему бы и нет? Class<T> это просто тип. Должен просто отлично связать.

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