【发布时间】:2013-05-19 16:24:20
【问题描述】:
在我的MainViewModel 中,我有一个由用户设置的属性。当收到新值时,我想在我的UserControl 更新信息。问题是绑定不起作用。我希望它的工作方式如下。更改SelectedDay后,后面的用户控件代码中的Day属性也发生了变化,从而调用了CalculateDay方法。但是,这个方法永远不会被调用!
我想,原因很简单,我只是不完全了解绑定机制,但我无法弄清楚哪里出了问题,现在我真的需要一些帮助。我已经检查了许多类似的问题,但从未找到合适的答案。
我的代码:
MainViewModel
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()));
【问题讨论】:
标签: wpf mvvm binding user-controls dependency-properties