フラット化オブジェクト階層のサポートに使用するカスタムプロパティ記述子があります。カスタムプロパティ記述子とフラット化階層
これを達成するために、PropertyDescriptor
をサブクラス化し、値を取得したい "次の"(子)プロパティにリンクリストを格納します。
これにより、サブプロパティを「フラット」な方法でグリッド(Excelにエクスポートするなど)にバインドすることができます。
例えば、 グリッド(バインドプロパティ、キャプション)
Col1:Customer.Name(Customer)
Col2:Customer.Address(Address)
Col3:Customer.OutstandingOrders.Count(Outstanding Orders)
問題はまだ私は重複した名前の列に追加すると、関係なく、それはユニークなキャプションを持っているという事実を、それが第一いずれかのプロパティを取得するということですが、正しいヘッダーを入力してください:
Col4:Customer.Company.Name(Company)
アイデアをお持ちですか?
私はこれを試してみます、私は現在最後の子供の名前を返します(this.child == null?this.name:this.child.name; 私はユニークな最初のプロパティの値をキャッシングして2番目のプロパティの正しいキャプションと再利用していると思うような名前です。 私はあなたに投票しますが、私は傾けるでしょう:( –
:) –
これは、名前オーバーライドの新しい作業行です。 return base.Name +(childProperty == null? "": "_" + childProperty.Name); childProperty ==の場合は、以前にbase.Nameを返していました。 nullまたはchildProperty.Nameなど。 –