#c# #silverlight #data-binding
#c# #silverlight #привязка к данным
Вопрос:
У меня есть поле со списком в приложении C # Silverlight. Моя модель представления имеет свойство, называемое DayOfWeek
. Это свойство должно соответствовать стандартному DayOfWeek
перечислению .NET.
Есть ли способ, которым я могу заполнить свой combobox значениями этого перечисления? Кроме того, есть ли способ связать это с моей view-model, чтобы выбранное значение передавалось туда и обратно в / из моей viewmodel? Если да, то каким образом?
Ответ №1:
В вашей 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
.