如何正确绑定Silverlight Toolkit中DatePicker的“日期”?我使用以下XAML代码:
<sdk:DatePicker
x:Name="DpDate"
Width="200"
Height="25"
DisplayDate="{Binding Date, Mode=TwoWay}" />
如果我选择日期,我的ViewModel会收到更改。但是我的View没有收到ViewModel的起始值?或者我该如何设置当前日期?
编辑:“TwoWay”-Binding与同一View / ViewModel中的TextBox一起使用。我认为我的问题是我不确定应该使用什么属性来绑定DatePicker。我应该使用Text,DisplayDate还是......其他?
答案 0 :(得分:7)
尝试与SelectedDate
绑定:
<sdk:DatePicker SelectedDate="{Binding Date,Mode=TwoWay}"/>
答案 1 :(得分:1)
只需将ViewModels
属性绑定到DatePicker
的Text属性(为了更好地兼容Converter
)。
另外,请不要忘记实施INotifyPropertyChanged
和TwoWay
绑定模式
答案 2 :(得分:1)
我遇到了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的第一天,所以我不知道是否有更好的方法来解决问题。)
答案 3 :(得分:0)
可能你的viewmodel并没有暗示INotifyPropertyChanged - 绑定到位但控件不知道它绑定的属性已经改变了。关于如何从JoshSmith中获取INotifyPropertyChanged this one的网上有很多(太多!)示例。 或者,您可以将DateTime属性设置为依赖属性。
答案 4 :(得分:0)
要将数据从ViewModel传递到View,您需要引发PropertyChanged()事件。