Проблема с типом привязки DataGrid - PullRequest
1 голос
/ 20 января 2011

Вот мои настройки. У меня есть следующие классы BusinessObject

BaseClass
InheritClassA : BaseClass
InheritClassB : BaseClass
InheritClassC : BaseClass

У меня также есть следующий словарь

Dictionary<classType is a String, ObservableCollection<BaseClass>>

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

Однако, когда я просто возвращаю свою коллекцию обратно как BaseClass, она показывает только столбцы для базового класса. Я думаю, это потому, что тип для ObservableCollection является типом baseClass и не относится к InheritClassA / InheritClassB / InheritClassC

Есть ли способ динамически создать тип ObservableCollection? Так я могу создать ObservableCollection и назначить в него приведенные значения?

Есть ли правильный способ привязать его к моей сетке данных, чтобы я мог просматривать свойства для класса наследования?

Большое спасибо,

1 Ответ

1 голос
/ 20 января 2011

Создайте словарь с типом значения Object, а не BaseClass. Затем вы можете добавить бетон ObservableCollection<InheritClass[A,B,C]>, и переплет будет работать так, как вы ожидаете:

Dictionary<classType is a String, ObservableCollection<object>> 

Если вы хотите быть более строгим, объявите его как Dictionary<string,IEnumerable>

...