2009-04-24 1 views
3

У меня есть собственный дескриптор свойств, который я использую для поддержки выравнивания иерархий объектов.Иерархии дескрипторов свойств и выравнивания свойств

Чтобы выполнить это, я подклассифицировал PropertyDescriptor и сохранил связанный список с «следующим» (дочерним) свойством, которое я хочу получить для значения.

Это позволяет мне связывать подпроцессы с сеткой (экспортировать в excel, что угодно) «плоским» способом.

например. Сетка (связанно собственность, Подпись)

Col1:Customer.Name(Customer) 
Col2:Customer.Address(Address) 
Col3:Customer.OutstandingOrders.Count(Outstanding Orders) 

Проблема заключается в том, что когда-то я добавляю в колонке с дублирующим именем, независимо от того, у него есть уникальный заголовок будет восстановить свойство для 1-ого, но до сих пор введите правильный заголовок в:

Col4:Customer.Company.Name(Company) 

Любые идеи?

ответ

1

Проблема заключается в том, что когда-то я добавляю в колонке с дублирующим именем, независимо от того, у него есть уникальный заголовок будет восстановить свойство для 1-ого, но все-таки поставить правильный заголовок в.

Можете ли вы уточнить эту линию? Я делал это раньше, но я использовал путь навигации в воображаемом имени - то есть у меня мог бы быть PropertyDescriptor.Name отчет Customer_Company_Name, а не Name, и используйте .DisplayName, чтобы сообщить что-то более читаемое.

+0

Ahh, я вижу, Я попробую это, я в настоящее время возвращаю имя последнего ребенка (т.е. this.child == null? This.name: this.child.name; Я попробую создать уникальное так как я думаю, что он кэширует значение для первого свойства и повторно использует его с правильным заголовком второго свойства. Я бы проголосовал за вас, но я не могу :( Я дам вам знать. –

+0

Работает отлично, спасибо :) –

+0

Это новая рабочая строка в переопределении имени. return base.Name + (childProperty == null? "": "_" + ChildProperty.Name); Я ранее возвращал base.Name, если childProperty == null или childProperty.Name. –