我的工作是将XAML中的标签Content绑定到DatePicker,这是一个人的出生日期,以获得他们的年龄。例如:日期选择器:2000.1.1标签:16。 我该怎么做?
修改
当DatePicker发生变化时,标签需要立即更改。
答案 0 :(得分:0)
使用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"/>