2011-03-22 3 views
2

オブジェクトのコレクションがネストされています。私は可能な場合は、ネストされたDataGridの内部に、データグリッド内のネストされたコレクションを横に表示したい。ここに私のクラスである:もちろんSilverlight 4 DataGrid入れ子になったデータグリッドデータを水平に表示する方法と垂直に表示させる方法

public class Details 
{ 
    public string Customer {get;set;} 
    public List<Type> Types { get; set;} 
} 
public class Type 
{ 
    public string typeId{get;set;} 
} 

彼らは本当にObservableCollectionsあると私はINotifyPropertyChangeを実装するには、これはただそこに主なポイントを得るために私のクラスの迅速なスケルトンです。

、それはこのように表示するために私ができるならば、それはいいだろう:

Details Customer  
        Types[0] typeId Types[1] typeId .... Types[n] typeId 

私は、これは理にかなって願っています。基本的には、私はIDを水平に表示する必要があります。では、Typesコレクションを列ではなく行として表示するにはどうしたらよいですか?基本的に、別のコレクションをTypeに追加して、DataGridをTypeにネストする必要がありますが、それらは水平でなくてもかまいません。どんな助けでも大歓迎です。前もって感謝します。

答えて

0

RowDetailsTemplateはここに働くかもしれない:

<DataGrid> 
    <DataGrid.RowDetailsTemplate> 
     <DataTemplate> 
      <xzy /> 
     </DataTemplate> 
    </DataGrid.RowDetailsTemplate> 
</DataGrid> 

<xyz />はあなたが水平にあなたのタイプを表示一部となります。必要に応じて、UserControl(public IEnumerable<Type> Types { get; set; }を作成し、Typesメンバーをバインドしてそこに表示ロジックを実装する)、StackPanel、またはタイプ名を連結する単純なTextBlockのいずれかを作成できます。

+0

これは、この例のようにテンプレートにリストボックスを追加すると、リストボックスを水平に表示するように動作することを意味しましたか? http://stackoverflow.com/questions/4978407/how-to-display-items-horizo​​ntally-in-a-listbox-control – pqsk