要求:允许用户以 ###### 格式输入日期,同时还可以从 DatePicker 中选择日期(假设输入的所有年份都是 2000 年之后)。例如,用户输入 050513 它会变成 5/5/ 2013年。或者,如果他们从 DatePicker 中选择它,则提供相同的显示。他们还希望它在控件获得焦点时选择全部,以便他们可以轻松覆盖任何预先存在的日期。
我尝试过的:我的 xaml 比我的 c# 强大得多,所以我尝试发挥创意,并且非常接近,但没有雪茄,所以希望有人可以填补空白,但这就是我得到的。我想我可以利用我所知道的辐射屏蔽文本框 http://www.telerik.com/help/silverlight/working_with_radmaskedtextbox.html and RadDate时间选择器 http://www.telerik.com/help/silverlight/raddatetimepicker-overview.html所以我将它们的属性稍微交织在一起(我的想法是我可以使用框进行输入,选择器仅用于图标),但出于测试目的,它是这样的;
<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>
除了仍然需要他们用斜杠输入整个日期之外,这非常有效。所以我将 MaskType 更改为 Standard,并使用 Mask="##/##/\2\0##" 插入“20”,这样他们就可以输入 121212 这样的内容,然后它就变成 12/12/2012 对吗?我以为我已经拥有它,直到我尝试将值传递给 DatePicker。我将选取器上的 SelectedDate 绑定到带文字的文本 https://stackoverflow.com/questions/6945986/getting-literal-value-from-a-masked-text-box-input获得显示值,没有运气。尝试了 Display.Text、Display.Value、仅文本、仅值。它们中的任何一个都无法绑定并传递给 DatePicker 来工作......
所以我想我的问题是,我仍然可以以某种方式绑定到该文字显示并仅使用 xaml 使其工作吗?或者是解析日期时间值 http://www.telerik.com/help/silverlight/raddatetimepicker-how-to-implement-custom-parsing.html不可避免地需要代码RadDate时间选择器 http://www.telerik.com/help/silverlight/raddatetimepicker-overview.html?如果是这样,有人可以分享一些知识并帮助一个人解决这个问题吗?或者还有其他方法来满足人们所追求的要求吗?这该不会是第一次出现这种情况了吧?
感谢您以任何方式阅读并欢呼!