Rob*_*ert 1 data-binding silverlight mvvm
我正在使用工具包中的Silverlight DatePicker和TimePicker来允许用户选择日期和时间.它们绑定在场景后面的业务对象上的相同DateTime值.这通常可以正常工作,除非更改日期组件时擦除时间组件.这有点合乎逻辑,但可能不是用户想要的行为.
我有几种方法可以解决这个问题:
我希望能够告诉DatePicker控件:只需在更改日期时保留时间组件.我希望得到太多吗?
我想,你可以说DatePicker"只是在你改变日期时留下时间组件"使用转换器:).当您将DateTime绑定到DatePicker转换器存储值时,并且在ConvertBack上返回而不更改Time部分.
public class DateConverter : IValueConverter
{
private DateTime _original;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
_original = (DateTime)value;
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
DateTime date = ((DateTime) value);
return new DateTime(date.Year, date.Month, date.Day, _original.Hour, _original.Minute, _original.Second);
}
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<sdk:DatePicker SelectedDate="{Binding Date, Mode=TwoWay,
Converter={StaticResource dateConverter}}" />
<input:TimePicker Value="{Binding Date, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6249 次 |
最近记录: |