做项目碰到一个需求,需要收集客户的资料。收集资料有一栏是年龄,那么为了方便我们可以根据客户的出生日期自动计算出客户的年龄,这样也使得我们的操作员更加方便省事。
接下来教大家用MVVM框架如何实现该效果。
WPF中自带的日期选择器是,首先我们需要声明一个属性。这个属性就是日期的属性,日期绑定的就是当天的日子。
private DateTime _getbrithday = DateTime.Now;
public DateTime getbrithday
{
get
{
return _getbrithday;
}
set
{
if (_getbrithday != value)
{
_getbrithday = value;
RaisePropertyChanged(“getbrithday”);
}
}
}
写好日期的属性之后,我们还需要年龄文本框的属性
private int _getage;
public int getage
{
get
{
return _getage;
}
set
{
if (_getage != value)
{
_getage = value;
RaisePropertyChanged(“getage”);
}
}
}
写好属性后我们就绑定到页面
这里我们需要双向绑定,后台改变,控件也需要跟着改变 上面有代码:Mode=Twoway。
因为我们用的MVVM框架,所以不能使用事件,只能使用事件触发器,因为我们选择出生日期年龄是不同的需要跟着改变所以我们用触发器写了一个改变事件,代码如上图。
改变事件写好之后我们就可以绑定命令实现方法了,页面声明的命令也一定要在后台声明好。
后台命令:
public RelayCommand getbrithdaycommand { set; get; }
方法如下:
因为我们对年龄也不需要太精细的需求,所以我们只算了年份,没有具体到月和天。
所以我们获取现在的日期,用现在的年份减去选中出生日期的年份,就能获取到年龄了。
最后要用命令执行方法才能实现效果