我正在使用WPF应用程序,并且我正在合并使用必须对事件作出反应的动态内容的DataGrid。将枚举绑定到DataGrid组合框视图
我有以下视图模型对包含DataGrid
public class HiddenFieldPanelViewModel
{
public List<HiddenFieldComponent> HiddenFieldList { get; set; }
public HiddenFieldComponent Component { get; set; }
public bool IsVisible { get; set; }
public enum FieldTypes{Constant,Variable}
public HiddenFieldPanelViewModel()
{
HiddenFieldList = new List<HiddenFieldComponent>();
IsVisible = false;
}
}
这种模式适用于本例中的唯一特性是指以下枚举属性查看
public enum FieldTypes {Constant,Variable}
我需要什么在填充DataGrid时要做的是将枚举类型绑定到DataGrid单元格中的下拉列表中,以下是DataGrid集合项目添加后的示例之一
例如,在上面的图片中,我希望它具有来自FieldTypes枚举的枚举值 。
在我的XAML中,我指定了以下内容:
<DataGridTemplateColumn Header="Field Type" CanUserResize="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Height="20" SelectedIndex="0" ItemsSource="{Binding Path=FieldTypes}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Path=Value}"></Label>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
其他列被正确绑定数据,但是这个人是不是。
我不确定是否有更好的方法来做到这一点。如果需要的话,我还从IValueConverter编写了一个EnumConverter来处理字符串枚举字符串转换。
感谢
大!奇迹般有效!!! – TheJediCowboy 2011-03-25 20:24:33
快速问题,有没有办法根据该DataGrid项目在组合框上设置选定的项目? – TheJediCowboy 2011-03-25 20:32:44
请参阅编辑更新的'ItemsSource'和'SelectedItem'。基本上,你只需将SelectedItem绑定到绑定DataGrid中的行的任何东西。该属性需要是OfType FieldTypes。 – 2011-03-25 21:22:36