2011-07-30 9 views
1

私は、入力パラメータに基づいてグリッドを生成するライブラリを持っています。グリッドには、入力に基づいて異なるコントロールが含まれている場合があります。私は各リスト項目が独自の生成されたグリッドを取得するリストボックスを作成したいと思います。これは実行可能ですか?私は、ButtonのようなContentプロパティを公開するパネル由来のもの(Gird、StackPanelなど)を見つけることができませんでした。バインディングのコンテンツを含むグリッド

答えて

0

Gridを構築するためにデータをどのように渡していますか?

私はあなたがDependency Propertyを介してデータを受け取るコントロールを持っていると仮定します。私。 MyDataがDependency PropertyであるMyControl.MyDataプロパティのようなものがあります。その場合は、DataTemplateを使用してみてください。

ObservableCollectionを作成します。各項目は、グリッドを構築するために渡す必要のあるデータです。

ListBoxのインスタンスで、コントロールで構成されるDataTemplateを使用するには、ItemTemplateを定義します。

<ListBox> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <myAssembly:MyControl MyData="{Binding }"/> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
0

@XAMeLiが彼の答えを右お金にほとんどである - 何が良いだろう、各データ項目は、別のテンプレート(または生成されたグリッド)を持つことができる方法、DataTemplateSelectorされます。 DataTemplateSelectorを拡張するクラスでは、適切なグリッドレイアウトを個別のコントロールまたは動的なDataTemplateとして簡単に生成またはロードできます。

この例では、良い例を確認しています:WPF Tutorial - How To Use A DataTemplateSelector

関連する問題