[英]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}"/>
我有一个相同的问题,其中DatePicker
在SelectedDate
上绑定到包含带有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
)。
也不要忘记实现INotifyPropertyChanged
和TwoWay
绑定模式
可能您的视图模型没有隐含INotifyPropertyChanged-绑定到位,但是控件不知道绑定到的属性已更改。 网上有很多(太多!)关于如何隐含INotifyPropertyChanged的示例,来自JoshSmith的这个是可以的。
另外,您可以将DateTime属性设为从属属性。
要将数据从ViewModel传递到View,您需要引发PropertyChanged()事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.