首页 文章

在DataGrid中绑定组合框

提问于
浏览
0

我将以下模型类设置为我的 DataGrid 的来源:

public class AttributesModel
    {
        public string Field { get; private set; }

        [Display(Name = "Sort Order")]
        public SortOrder SortBy { get; set; }

        [Display(Name = "Group By")]
        public string GroupBy { get; set; }

        [Display(Name = "Having")]
        public string Having { get; set; }

        [Display(Name = "Display Order")]
        public string DisplayOrder { get; set; }

        [Display(Name = "Aggregate By")]
        public Aggregate AggregateBy { get; set; }

        public enum Aggregate
        {
            None,
            Sum,
            Minimum,
            Maximum,
            Average
        }

        public enum SortOrder
        {
            Unsorted,
            Ascending,
            Descending
        }

        public AttributesModel(string field)
        {
            Field = field;
        }
    }

我基本上试图绑定我的DataGrid中的列与上面的prpoerties . 它们都工作,除了为组合框列设置的 enums .

我似乎无法让组合框结合起来 . 这就是我尝试过的:

<DataGridComboBoxColumn Width="Auto" CanUserResize="False" CanUserReorder="False" CanUserSort="False" IsReadOnly="False" ItemsSource="{Binding ElementName=AttributesWindow, Path=SortOrder}">
                    <DataGridComboBoxColumn.Header>Order</DataGridComboBoxColumn.Header>
                </DataGridComboBoxColumn>

1 回答

  • 2

    ItemsSource期望 IEnumerable 值, enum 不是 IEnumerable . 试试这个:

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

相关问题