0

プロジェクトにデータグリッドがあり、属性コレクションを次のようにバインドします。

<DataGrid 
    Grid.Row="1"
    ItemsSource="{Binding Attributes}" 
    AutoGenerateColumns="False"
    Margin="5"
    >
    <DataGrid.Columns>
        <DataGridTextColumn Width="3*" Header="Name" IsReadOnly="True" Binding="{Binding name}" />
        <DataGridTextColumn Width="3*" Header="Field" Binding="{Binding field}" />
        <DataGridTextColumn Width="3*" Header="Type" Binding="{Binding type}" />
        <DataGridTextColumn Width="3*" Header="Value" Binding="{Binding value}" />

問題は、名前、フィールド、およびタイプが文字列で、値がリストであることです。この方法でデータグリッドにバインドするにはどうすればよいですか:

Name     Field     Type    Value
-----   -------   ------   -----
name1   xField1   xType1     1
name1   xField1   xType1     2
name1   xField1   xType1     3
name1   xField1   xType1     4
name1   xField2   xType2     5
name2   xField2   xType2     20
name2   xField2   xType2     30
name2   xField2   xType2     40
name3   xField3   xType3     100

私の場合、ItemsSource="{Binding Attributes}" Attributes は 3 つの値 (name1、name2、name3) のリストです。

4

1 に答える 1

1

あなたが言ったように、値がList()であると仮定します。その場合、DataGridTextColumn の代わりに DataGridTemplateColumn を作成し、リストまたはリストビューを保持するデータ テンプレートを作成すると、各行には、その行に適用されるすべての値を表示するリストボックス/リストビューが含まれます。値のカウントを表示したいだけの場合は、すべてをそのままにして、 Value.Count をバインドします。これが少し役立つことを願っています:)

于 2012-08-18T00:05:19.090 に答える