2010-01-31 69 views
2

在我的數據庫中,我有一個2列(種類和優先級)是int類型。我也有種類和優先級的枚舉。但是當我嘗試將它們顯示到一個GridViewColumn中時,它顯示整數而不是枚舉值。我需要一個轉換器下面是枚舉:我需要一個轉換器來解析和綁定枚舉

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

如果優先級和種類屬性被聲明爲int類型,那麼,你就需要一個轉換器。 WPF無法知道聲明爲整數的屬性需要解釋爲枚舉中的值。

如果Priority和Kind屬性分別聲明爲Priority和Kind類型,那麼它應該可以工作:WPF通過調用ToString()來顯示枚舉值,這會導致枚舉值的名稱。

例如:

// 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支持字段並執行如果你使用的是一個好的ORM,那麼它應該能夠爲你處理這個問題。)

+0

你能發表一個樣本嗎? – 2010-02-02 02:05:59

+0

我不確定你需要從樣本中得到什麼,但我已經擴展了答案來顯示你的數據庫對象想要的樣子。 – itowlson 2010-02-02 03:02:27

+0

我想過使用IValueConverter? – 2010-02-02 23:20:41