2017-10-19 12 views
0

私はDataGridを持っています。非常に簡単:リストを挿入する<string> Items of DataGrid-Column-Index 2

<DataGrid Width="320" Height="340" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Filter" Width="Auto"/> 
      <DataGridTextColumn Header="Name" Width="*"/> 
     </DataGrid.Columns> 
    </DataGrid> 

だから、私は2番目の列に文字列のリストを挿入する必要があります。 私は素晴らしい解決策を探していましたが、良い解決策を見つけることができませんでした。私はバインディングでこれを行うことを考えましたが、2番目の列だけを埋めるようには働きませんでした。

最初の列では、すべての文字列Itemの前にチェックボックスを挿入します。

<DataGrid Margin="4" AutoGenerateColumns="False" ItemsSource="{Binding Models}"> 
     <DataGrid.Columns> 
      <DataGridCheckBoxColumn Header="CheckBox Column Header" Binding="{Binding BindToBooleanPropertyFromModel}"></DataGridCheckBoxColumn> 
      <DataGridTemplateColumn Header="List of strings"> 
       <DataGridTemplateColumn.CellTemplate> 
        <ItemContainerTemplate> 
         <ItemsControl ItemsSource="{Binding BindToListPropertyFromModel}"> 
         </ItemsControl> 
        </ItemContainerTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
     </DataGrid.Columns> 
    </DataGrid> 

:あなたは手動で列を作成し、2列目DataGridTemplateColumnを使用して、このようなそのDataGridTemplateColumn.CellTemplateとして(それを継承するか、任意のコントロール)ItemsControlを提供することができます

+0

行の2番目の列に文字列のリストを保持させたいのですか? – Redouane

+0

@Redouaneはい、リストには約70のエントリがあります。これらは、2番目の列のヘッダーの下の行に表示されます。 – Niclas

答えて

0

事前:)で

感謝私はbool型のプロパティの名前へのプレースホルダとしてBindToBooleanPropertyFromModelBindToListPropertyFromModelを使用し、それぞれ文字列のリストを保持するタイプIEnumrable<T>のプロパティを使用します。

+0

ねえ、ありがとう。最後の1つの質問:バインディングを正しく作成する方法を教えてください。 XAMLの部分ははっきりしていますが、私はどうしたらいいですか? ItemSourceの背後にMethod(Property)を置くだけで動作しますか?あるいは、私の.csファイルで何か別のことをしなければならないのですか? – Niclas

+0

ViewModelとModelsパターンを使用していますか?あなたは 'DataGrid'を満たすためにデータソースとして何を使用しますか? – Redouane

+1

私はそれを考え出した:) – Niclas

関連する問題