如何使用基于数据类型的项创建DataGrid

时间:2013-08-23 03:00:53

标签: c# wpf xaml mvvm wpfdatagrid

我想在数据网格上显示我的Itemssource的不同成员作为Tiles,我可以在其中编辑它们.Tiles上的编辑选项应该基于数据类型,如果它是枚举,那么组合框应该可用,突出显示当前项目,如果它的字符串应该比正常编辑完成。

带有枚举值的My Tile看起来应该是这样的,其中None是Enum的当前值(Single,None,All)。可以提供一些示例代码来为此设置数据格式单元格模板。使用MVVMIam

My item with enum values should look like this

2 个答案:

答案 0 :(得分:0)

您可以使用组合框执行此操作:

 <ComboBox x:Name="FirstVariable" 
                      SelectedItem="{Binding ElementName=RootControl, Path=Request.Analysis.Variables[0]}"
                      ItemsSource="{Binding VariableTypeValues, ElementName=RootControl}"
                      />

public IEnumerable<VariableType> VariableTypeValues
    {
        get
        {
            return Enum.GetValues(typeof(VariableType)).Cast<VariableType>();
        }
    }

获取枚举值.Request.Analysis.Variables [0]的类型为VariableType。

答案 1 :(得分:0)

您可以使用DataGridTemplateColumn并将CellEditingTemplateSelector设置为自定义DataTemplateSelector,它将根据单元格值数据类型提供特定的编辑模板。 Just found one that matches yours request