我在 GridViewColumn 中有一个下拉列表
值包括“项目”、“项目 2”
当我单击列中的“项目”值时,下一列必须是可编辑的当我单击 item2 时,下一列必须再次具有 2 行和 3 列的 gridview 结构,或者以某种方式输入 6 个值。
这可能吗?请建议
您可以使用第二列作为DataGridTemplateColumn
并根据组合框中所选项目的值切换内容模板。但是你应该让你的模型支持 datagridrowINotifyPropertyChanged
并且组合框列的 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>