c# WPF日期picker标签绑定,以获得一个人的年龄

本文关键字:一个人的年 绑定 WPF 日期 picker 标签 | 更新日期: 2023-09-27 18:14:15

我的工作是将XAML中的标签内容绑定到DatePicker, DatePicker是一个人的出生日期,以获得他们的年龄。日期选择器:2000.1.1标签:16。我该怎么做呢?

编辑

标签需要在DatePicker更改时立即更改。

c# WPF日期picker标签绑定,以获得一个人的年龄

使用IValueConverter实现绑定标签,如下所示:

class BirthdateToAgeConverter : IValueConverter
{
    public object Convert
        (
        object value,
        Type targetType,
        object parameter,
        string language)
    {
        var birthdate = ((DateTime) value).Date;
        var age = DateTime.Today.Year - birthdate.Year;
        if (birthdate > DateTime.Today.AddYears(-age))
        {
            age--;
        }
        return age;
    }
    public object ConvertBack
        (
        object value,
        Type targetType,
        object parameter,
        string language)
    {
        throw new NotImplementedException();
    }
}

编辑:在XAML中,如果直接绑定到DatePicker,则需要定义绑定路径。你也可以在ViewModel上绑定SzuletesiDatum。

<Label Content="{Binding ElementName=dtPicker, Path=SelectedDate ,Converter={StaticResource DTKC}}" 
       HorizontalAlignment="Left" Margin="356,94,0,0" 
       VerticalAlignment="Top"/> 
<DatePicker x:Name="dtPicker" 
            SelectedDate="{Binding SzuletesiDatum}" 
            HorizontalAlignment="Left" 
            Margin="112,94,0,0" 
            VerticalAlignment="Top"/>