请建议在Forming UI中使用哪种方法

时间:2013-09-05 11:04:43

标签: c# wpf

我在GridViewColumn中有一个下拉列表

值包括" item"," item2"

点击" item"列中的值,下一列必须是可编辑的 当我点击item2时,下一列必须再次具有2行和3列的gridview结构,或者输入6个值。

这可能吗?请建议

1 个答案:

答案 0 :(得分:0)

您可以将第二列用作DataGridTemplateColumn并根据组合框中所选项目的值切换contenttemplate。但是你应该将你的模型支持datagridrow实现为INotifyPropertyChanged,并且组合框列的SelectedItemBinding应该绑定到模型上的属性。

        <DataGrid>
            <DataGrid.Resources>
                <DataTemplate x:Key="CellTemplate">
                    <TextBlock Text="{Binding Value2}"/>
                </DataTemplate>

                <DataTemplate x:Key="CellEditingTemplate">
                    <TextBox Text="{Binding Value2}"/>
                </DataTemplate>

            </DataGrid.Resources>
            <DataGrid.Columns>
                <DataGridComboBoxColumn SelectedItemBinding="{Binding Value1}"/>
                <DataGridTemplateColumn CellTemplate="{StaticResource CellTemplate}">

                    <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <ContentControl x:Name="myControl"/>
                            <DataTemplate.Triggers>
                                <DataTrigger Binding="{Binding Value2}" Value="item1">
                                    <Setter TargetName="myControl" Property="ContentTemplate" Value="{StaticResource CellEditingTemplate}"/>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding Value2}" Value="item2">
                                    <Setter TargetName="myControl" Property="ContentTemplate" Value="{StaticResource CellTemplate}"/>
                                </DataTrigger>
                            </DataTemplate.Triggers>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>