繁体   English   中英

如何在C#/ Silverlight中绑定DatePicker的“日期”?

[英]How to bind the “date” of DatePicker in C#/Silverlight?

如何从Silverlight工具包中正确绑定DatePicker的“日期”? 我使用以下XAML代码:

<sdk:DatePicker 
x:Name="DpDate" 
Width="200" 
Height="25" 
DisplayDate="{Binding Date, Mode=TwoWay}" />

如果选择日期,则ViewModel会收到更改。 但是我的View不能从ViewModel接收起始值吗? 或者如何设置当前日期?

编辑 :“双向”绑定在同一View / ViewModel中与TextBox一起使用。 我认为我的问题是我不确定应该为DatePicker的绑定使用什么属性。 我应该使用Text,DisplayDate还是sth。 其他?

尝试与SelectedDate绑定:

<sdk:DatePicker SelectedDate="{Binding Date,Mode=TwoWay}"/>

我有一个相同的问题,其中DatePickerSelectedDate上绑定到包含带有date属性的子对象的数据上下文。 该控件将不会显示对基础日期属性的更改。 当我将getter / setter添加到数据上下文以更新子对象的日期时,它按预期工作。

这不起作用:

  <sdk:DatePicker x:Name="FromDate" SelectedDate="{Binding Child.TheDate, Mode=TwoWay}" 

这工作:

  <sdk:DatePicker x:Name="FromDate" SelectedDate="{Binding TheDate, Mode=TwoWay}" 

(这是我第一次使用WPF / Silverlight,所以我不知道是否有更好的方法来解决该问题。)

只需将ViewModels属性绑定到DatePicker Text属性(为更好地兼容,请使用Converter )。

也不要忘记实现INotifyPropertyChangedTwoWay绑定模式

可能您的视图模型没有隐含INotifyPropertyChanged-绑定到位,但是控件不知道绑定到的属性已更改。 网上有很多(太多!)关于如何隐含INotifyPropertyChanged的示例,来自JoshSmith的这个是可以的。
另外,您可以将DateTime属性设为从属属性。

要将数据从ViewModel传递到View,您需要引发PropertyChanged()事件。

有关PropertyChanged事件的MSDN文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM