当其中一个DataGridTextColumn是列表时绑定到datagrid

时间:2012-08-17 21:43:32

标签: wpf datagrid bind

我的项目中有datagrid,我绑定了我的属性集合,如下所示:

<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}" />

问题是名称,字段和类型是字符串,值是列表。我怎样才能以这种方式将它绑定到Datagrid:

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}”属性是3个值的列表(name1,name2,name3)。

1 个答案:

答案 0 :(得分:1)

假设你说的值是List()。如果是这样,您可能尝试创建DataGridTemplateColumn而不是DataGridTextColumn,并创建一个包含列表或列表视图的datatemplate,然后每行将有一个listbox / listview,显示适用于该行的所有值。如果您只想显示值的计数,那么您将保留所有内容,并绑定Value.Count。希望这有点帮助:))