我有一个数据网格,我希望用户能够编辑其中一列中的值。但是,根据另一列中的值,我需要让他们在文本框中输入值(其他列值 = 0),或者从我将从字典中填充的组合框(其他列值 > 00)中选择一个值。
我该怎么做这样的事情?
我有一个数据网格,我希望用户能够编辑其中一列中的值。但是,根据另一列中的值,我需要让他们在文本框中输入值(其他列值 = 0),或者从我将从字典中填充的组合框(其他列值 > 00)中选择一个值。
我该怎么做这样的事情?
您可以为 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>
这里的 COLUMNWOPROPERTY 是决定单元格是否应该显示文本框或组合框的值。
谢谢