Datagrid中不同组合框的不同itemssource

时间:2012-11-02 01:26:43

标签: c# wpf datagrid

  

可能重复:
  Different values for different comboboxes in Datagrid

我使用以下代码将{两个组合框添加到DataGrid

<DataGrid x:Name="dData" HorizontalAlignment="Left" Margin="76,105,0,0" VerticalAlignment="Top" Height="191" Width="313" Grid.ColumnSpan="2" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Hello"/>
        <DataGridTemplateColumn Header="Status" Width="100">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox Name="Combo1" Height="22"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
    <ComboBox Name="Combo1"/>
    <ComboBox Name="Combo2"/>
</DataGrid>

现在,如何将两个不同的项目源添加到这两列?

enter image description here

2 个答案:

答案 0 :(得分:1)

在Xaml 中,您可以通过这种方式直接定义ItemSource

<ComboBox Name="Combo1" ItemsSource="{Binding Homes, Mode=OneWay}" 
   DisplayMemberPath="Name" />

Homes对应Property中定义的与ViewModel / DataContext的{​​{1}}相关联的window

在代码隐藏中,您可以通过以下方式定义control

ItemSource

参考:WPF ComboBox and DataBinding: DataContext, ItemsSource, DisplayMemberPath, SelectedItem, SelectedValue & SelectedValuePath

答案 1 :(得分:0)

只需按名称获取combox并向其添加不同的itemsource

Combo1.ItemsSource = listSource1;
Combo2.ItemsSource = listSource2;