在我的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()));