当我的用户通过DatePicker中的Calander控件选择日期时,该值将正确绑定到底层对象.但是,如果用户在DatePicker中键入日期,则单击按钮,文本不会设置为SelectedDate属性.
用户必须从要更新的绑定对象的DatePicker中的TextBox中删除光标.
<toolkit:DatePicker Name="_dpField" Grid.Column="1" MinWidth="100" ToolTip="{Binding Path=ToolTipText}" TextInput="_dpField_TextInput" SelectedDate="{Binding Path=Value,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"/>
帮帮我!如何确保按钮事件代码中使用此类型值?
谢谢!
解决方法
您可以使用转换器将您键入的文本解析为有效的日期时间
样品
public object Convert(object value,Type targetType,object parameter,CultureInfo culture) { string strValue = System.Convert.ToString(value); DateTime resultDateTime; if (DateTime.TryParse(strValue,out resultDateTime)) { return resultDateTime; } return value; }
XAML
<Controls:DatePicker Text="{Binding OrderDate,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedDate="{Binding RelativeSource={RelativeSource Self},Path=Text,Converter={StaticResource DateConverter}}">