编辑Datagrid组合框或文本框

时间:2013-09-03 17:57:19

标签: c# wpf wpfdatagrid

我有一个数据网格,我希望用户能够编辑其中一列中的值。但是,根据另一列中的值,我需要让它们在文本框中输入值(其他列值= 0)或从组合框中选择一个值(其他列值> 00),我将从字典中填充。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以为DataGrid定义TemplateColumn并定义其CellTemplate,如下所示:

 <DataGrid>
        <DataGrid.Columns>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ContentControl x:Name="ContentPlaceholder">
                            <ContentControl.Style>
                                <Style TargetType="{x:Type ContentControl}">
                                    <Setter Property="ContentTemplate">
                                        <Setter.Value>
                                            <DataTemplate>
                                                <ComboBox />
                                            </DataTemplate>
                                        </Setter.Value>
                                    </Setter>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding COLUMNTWOPROPERTY}" Value="0">
                                            <Setter Property="ContentTemplate">
                                                <Setter.Value>
                                                    <DataTemplate>
                                                        <TextBox Text="{Binding PROPERTYFORTEXTBOX}"/>
                                                    </DataTemplate>
                                                </Setter.Value>
                                            </Setter>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </ContentControl.Style>
                        </ContentControl>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

此处COLUMNTWOPROPERTY是决定单元格是否应显示文本框或组合框的值。

由于