Silverlight - 绑定到枚举

时间:2011-11-05 13:50:29

标签: c# silverlight data-binding

我在C#Silverlight应用程序中有一个组合框。我的视图模型有一个名为DayOfWeek的属性。此属性需要与standard .NET DayOfWeek Enumeration匹配。

有没有办法可以使用此枚举的值填充我的组合框?另外,有没有办法让我用我的视图模型连接它,以便所选值传播到我的视图模型来回/从我的视图模型来回传播?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:0)

在ViewModel中:

private ObservableCollection<DayOfWeek> _weekDays;

// In the constructor:
_weekDays = new ObservableCollection<DayOfWeek>();
_weekDays.AddRange(new DayOfWeek[] {
    DayOfWeek.Sunday,
    DayOfWeek.Monday,
    DayOfWeek.Tuesday,
    DayOfWeek.Wednesday,
    DayOfWeek.Thursday,
    DayOfWeek.Friday,
    DayOfWeek.Saturday
});

// Properties of your VM:
public ObservableCollection<DayOfWeek> WeekDays
{
    get
    {
        return _weekDays;
    }
}

public DayOfWeek SelectedDay
{
    get;
    set;
}

在XAML中:

<ComboBox 
    ItemsSource="{Binding WeekDays}" 
    SelectedItem="{Binding SelectedDay, Mode=TwoWay}"/>

使用组合框时,SelectedDay的值会发生变化。如果您想更改代码中的值,请从INotifyPropertyChanged的设置器中实施PropertyChanged并触发SelectedDay