В моем MainViewModel
у меня есть свойство, которое устанавливается пользователем. Когда будет получено новое значение, я хотел бы обновить информацию на моем UserControl
. Проблема в том, что привязка не работает. Я хотел бы, чтобы это работало следующим образом. После изменения SelectedDay
свойство Day
в коде пользовательского элемента управления также изменяется, вызывая, таким образом, метод CalculateDay
. Однако этот метод никогда не вызывается!
Я предполагаю, что причина очень проста, и я просто не совсем понимаю механизм привязки, но я не могу понять, что не так, и теперь мне очень нужна помощь. Я уже проверил ряд подобных вопросов, но так и не нашел подходящего ответа.
Код у меня есть:
Модель главного представления
private Day _selectedDay;
public Day SelectedDay
{
get { return _selectedDay; }
set
{
_selectedDay = value;
RaisePropertyChanged("SelectedDay");
}
}
XAML для основного окна
<controls:DayControl Day="{Binding SelectedDay, Mode=TwoWay}"></controls:DayControl>
Код UserCotrol позади
public Day Day
{
get { return (Day)GetValue(DayProperty); }
set
{
SetValue(DayProperty, value);
CalculateDay();
}
}
public static readonly DependencyProperty DayProperty =
DependencyProperty.Register("Day", typeof(Day), typeof(DayControl), new PropertyMetadata(new Day()));