B. *_*non 3 c# wpf datetime wpf-controls
我有一组这样的组件:
<StackPanel Orientation="Horizontal" >
<Label>Between</Label>
<DatePicker Name="dtpFrom" ></DatePicker>
<TextBox Name="timeFrom" MinWidth="60" />
<Label>and</Label>
<DatePicker Name="dtpTo"></DatePicker>
<TextBox Name="timeTo"
MinWidth="60" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
用户可以选择日期并设置"发件人"日期和时间以及"收件人"日期和时间.
我想将这些(DatePicker的日期部分与TextBox中表示的相应时间部分)组合成DateTime值.例如,用:
DateTime dtFrom;
Run Code Online (Sandbox Code Playgroud)
...我希望能够做类似(伪代码)的事情:
dtFrom = (DateTime) dtpFrom.Date + Convert.ToTime(timeFrom);
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我建议在DataContext中处理它(即:ViewModel),并绑定到两个单独的属性.这些可以很容易地映射到底层DateTime.
例如:
// In ViewModel
private DateTime dateTime;
public DateTime Date
{
get { return dateTime.Date; }
set
{
if (value != dateTime.Date)
{
dateTime = value.Date + dateTime.TimeOfDay;
RaisePropertyChanged("Date");
}
}
}
public TimeSpan Time
{
get { return dateTime.TimeOfDay; }
set
{
if (value != dateTime.TimeOfDay)
{
dateTime = dateTime.Date + value;
RaisePropertyChanged("Time");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将允许您将每个控件绑定到适当的属性,但仍然在一个DateTime实例中维护所有内容.
| 归档时间: |
|
| 查看次数: |
857 次 |
| 最近记录: |