如何绑定“日期”c# /Silverlight中的日期picker
本文关键字:日期 Silverlight picker 绑定 何绑定 | 更新日期: 2023-09-27 18:15:57
我如何从Silverlight工具包正确绑定DatePicker的"日期" ?我使用以下xhtml代码:
<sdk:DatePicker
x:Name="DpDate"
Width="200"
Height="25"
DisplayDate="{Binding Date, Mode=TwoWay}" />
如果我选择一个日期,我的ViewModel接收更改。但是我的视图没有从ViewModel接收开始值?或者如何设置当前日期?
Edit:"双向"绑定在同一个View/ViewModel中的文本框中工作。我认为我的问题是我不确定我应该为DatePicker的绑定使用什么属性。我应该使用Text, DisplayDate还是别的?
尝试绑定SelectedDate
:
<sdk:DatePicker SelectedDate="{Binding Date,Mode=TwoWay}"/>
将您的ViewModels
属性绑定到DatePicker
的文本属性(为了更好的兼容性使用Converter
)。
也不要忘记实现INotifyPropertyChanged
和TwoWay
绑定模式
我有同样的问题,DatePicker
在SelectedDate
上绑定到包含具有日期属性的子对象的数据上下文。控件不会显示对基础日期属性的更改。当我在数据上下文中添加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,所以我不知道是否有更好的方法来解决这个问题。)
可能你的视图模型没有实现INotifyPropertyChanged -绑定是到位的,但控件不知道它绑定到的属性已经改变。web上有很多(太多了!)关于如何实现INotifyPropertyChanged的例子,这个来自JoshSmith是ok的。或者,您可以将DateTime属性设置为依赖属性。
要将数据从ViewModel传递到View,您需要引发PropertyChanged()事件。
MSDN文章关于PropertyChanged事件