【发布时间】:2020-02-21 21:30:07
【问题描述】:
我尝试将 2 个日历与相同的属性绑定,但问题是当我们选择其他月份的日期时,这不会影响另一个日历。
XAML:
<Calendar x:Name="Cal1" Grid.Column="0" Grid.Row="0" SelectedDate="{Binding Selectdate, Mode=TwoWay}" SelectionMode="MultipleRange" RenderTransformOrigin="0.515,0.478" Margin="85,0,103,337" />
<Calendar x:Name="Cal2" SelectedDate="{Binding Selectdate, Mode=TwoWay}" Width="192" Grid.Column="1" SelectionMode="MultipleRange" Grid.Row="0" Margin="94,0,94,337"/>
属性:
private DateTime _selectdate;
public DateTime Selectdate
{
get { return _selectdate; }
set
{
if (value != _selectdate)
{
_selectdate = value;
}
}
}
【问题讨论】:
-
你的viewmodel类需要实现INotifyPropertyChanged,并且它的
Selectdate属性需要在其值改变时引发PropertyChanged通知。 Here's an example of how to implement INotifyPropertyChanged 在视图模型基类中。获得该基类后,只需从中继承您的视图模型,然后在属性设置器中使用 SetProperty() 方法,如该答案所示。我认为这是这里唯一缺少的东西。如果您遇到麻烦,请告诉我。 -
您好,感谢您的帮助,我已经尝试过您的建议,但仍然无法按照我的要求工作,例如,我有 2 个名为 cal1 和 cal2 的日历,如果我在 cal1 中选择一个日期cal2 中发生了相同的选择,但如果我尝试更改月份或年份,则它发生在 cal1 而不是 cal2 中。只有当日历中的月份显示相同时,选择操作才有效。
-
请出示您的代码的新版本。
标签: wpf