WPF.NET Datagrid中的不同Usercontrolls

时间:2015-08-04 08:40:53

标签: c# wpf datagridview

我有一个包含2列的Datagrid:描述和值。说明应显示为文本列。值应显示为Textboxcolumn或Comboboxcolumn,基于true或false。 如何动态更改列的Usercontrol?

由于

1 个答案:

答案 0 :(得分:0)

一个选项可能是DataGridTemplateColumn,其中包含两个控件,并将其可见性绑定到项类中的属性。

<DataGridTemplateColumn Header="Value">
     <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
           <TextBox Text="{Binding value}" Visibility="{Binding visibilityTextbox}"/>
           <ComboBox ItemsSource="{Binding options}" Visibility="{Binding visibilityCombobox}"/>
        </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

然后在你的课堂上:

public string value {get;set;}
public ObservableCollection<string> options {get;set;}
public bool isComboBox {get;set;}
public Visibility visibilityTextbox { get { if(isComboBox) { return Visibility.Collapsed; } else { return Visibility.Visible; }} }
public Visibility visibilityCombobox { get { if(isComboBox) { return Visibility.Visible; } else { return Visibility.Collapsed; }} }