2010-01-31 3 views
2

В моей базе данных у меня есть 2 столбца (Вид и Приоритет), которые имеют тип int. У меня также есть перечисление со значениями Kind и Priority. Но когда я пытаюсь отобразить их в GridViewColumn, он показывает целые числа, а не значения enum. Мне нужен конвертер Вот перечисления ли:Нужен ли мне конвертер для анализа и привязки перечисления

public enum Kind 
{ 
    None = 0, 
    Task = 1, 
    Assignment = 2, 
    Quiz = 3, 
    Test = 4, 
    Exam = 5, 
    Project = 6, 

} 
public enum Priority 
{ 
    None = 0, 
    Low = 1, 
    Medium = 2, 
    High = 3, 
    Top = 4, 
} 

И мой XAML:

<GridViewColumn x:Name="PriorityColumn" Header="Priority" Width="60" DisplayMemberBinding="{Binding Path=Priority}" /> 
<GridViewColumn x:Name="KindColumn" Header="Kind" Width="60" DisplayMemberBinding="{Binding Path=Kind}" /> 

ответ

1

Если приоритет и свойства Kind объявлены как тип INT, то да, вам нужен конвертер. WPF не знает, что свойства, объявленные как целочисленные, должны интерпретироваться как значения из перечислений.

Если свойства Priority and Kind объявлены как приоритет типа и вид соответственно, тогда он должен просто работать: WPF отображает перечисления, вызывая ToString() на них, что приведет к имени значения enum.

Например:

// As per your question 
public enum Kind { ... } 
public enum Priority { ... } 

// Your database object 
public class Job : INotifyPropertyChanged 
{ 
    public Kind Kind { get ... set ... }    // note Kind not int 
    public Priority Priority { get ... set ... }  // note Priority not int 
} 

(При заполнении объекта работы вы, конечно, нужно отливать Интс, выходящий из базы данных для Вида и приоритета, или вы вставляете с полем INT основы и сделать литье в геттер и сеттер.Если вы используете хороший ОРМ, то он должен уметь позаботиться об этом для вас.)

+0

Не могли бы вы разместить образец? –

+0

Я не уверен, что вам нужно от примера, но я расширил ответ, чтобы показать, как будет выглядеть ваш объект базы данных. – itowlson

+0

Я думал об использовании IValueConverter? –

Смежные вопросы