要求:允许用户以###### 格式输入日期,同时还可以从 DatePicker 中选择它(假设输入的所有年份都是 2000 年后。)例如,用户输入 050513 它变成 5/ 5/2013。或者,如果他们从 DatePicker 中选择它,则提供相同的显示。他们还希望它在控件获得焦点时全选,以便他们可以轻松地覆盖任何预先存在的日期。
我尝试了什么:我的 xaml 比我的 c# 强大得多,所以我尝试发挥创造力并且非常接近但没有雪茄,所以希望有人可以填补空白,但这就是我得到的地方。我想我可以利用我对RadMaskedTextBox和RadDateTimePicker的了解,所以我将它们的属性交织在一起(我的想法是我可以只使用 Box 进行输入,而选择器仅用于图标)但出于测试目的,它是这样的;
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Center" >
<telerik:RadMaskedTextBox x:Name="radMTB"
Value="{Binding SelectedDate, Mode=TwoWay,
ElementName=radDP}"
MaskType="DateTime"
Mask="d" SelectionOnFocus="SelectAll" />
<telerik:RadDateTimePicker x:Name="radDP"
InputMode="DatePicker"
SelectedDate="{Binding SelectedDate, Mode=TwoWay, ElementName=radMTB}"/>
</StackPanel>
这很好用,除了它仍然需要他们用斜杠输入整个日期。所以我用 Mask="##/##/\2\0##" 将 MaskType 更改为 Standard 以插入“20”,这样他们就可以像 121212 一样输入,它变成 12/12/2012 对吗?以为我拥有它,直到我尝试将值传递给 DatePicker。我将 Picker 上的 SelectedDate 绑定到TextWithLiterals以获取显示值,没有运气。试过 Display.Text,Display.Value,只是 Text,只是 Value。它不能与它们中的任何一个一起绑定并传递给 DatePicker 工作......
所以我想我的问题是,我仍然可以以某种方式绑定到该文字显示并仅使用 xaml 来完成这项工作吗?还是RadDateTimePicker不可避免地需要ParseDateTimeValue代码?如果是这样,有人可以分享一些知识并帮助一个人吗?还是有其他方法可以共同满足追捧的要求?这不可能是第一次出现?
感谢您阅读任何一种方式和欢呼!