RadDateTimePicker +数据输入掩码

时间:2012-11-26 22:49:29

标签: c# silverlight validation xaml telerik

要求:允许用户以######的格式输入日期,同时还可以从DatePicker中选择日期(假设输入的所有年份都是Post 2000.)所以例如,用户输入050513它变为5/5/2013。或者如果他们从DatePicker中选择它,则提供相同的显示。他们还希望它在控件获得焦点时选择所有内容,以便他们可以轻松覆盖任何预先存在的日期。

我尝试了什么:我的xaml比我的c强得多,所以我试图变得有创意并且非常接近但没有雪茄,所以希望有人可以填补空白但这里是我得到的地方。我想我可以利用我对RadMaskedTextBoxRadDateTimePicker的了解,所以我将它们的属性交织在一起(我可以使用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。我将拾取器上的SelectedDate绑定到TextWithLiterals以获取显示值,没有运气。尝试Display.Text,Display.Value,只是文本,只是值。它们中的任何一个都无法绑定并传递给DatePicker工作......

所以我想我的问题是,我是否仍能以某种方式绑定到该文字显示并仅使用xaml进行此工作?或者ParseDateTimeValue不可避免地需要RadDateTimePicker代码?如果是这样,有人可以分享一些知识并帮助一个人吗?或者还有另一种方式来满足追求的要求吗?这是第一次出现这个问题吗?

感谢您阅读任何一种方式和欢呼!

1 个答案:

答案 0 :(得分:1)

尝试使用Telerik的RadMaskedDateTimeInput,而不是使用RadMaskedTextBox。使用DateTime值可以更加灵活。

<telerik:RadMaskedDateTimeInput x:Name="radMTB1"
                                IsClearButtonVisible="False"
                                FormatString="{}{0:M/d/yyyy}"
                                Mask="MMddyy"
                                SelectionOnFocus="SelectAll"
                                Value="{Binding SelectedDate, Mode=TwoWay, ElementName=radDP2}" />

更多信息:http://www.telerik.com/help/silverlight/radmaskedinput-features-controls-datetime.html