如何设置时间选取器控件的默认时间
本文关键字:时间 选取 默认 控件 何设置 设置 | 更新日期: 2023-09-27 18:25:55
在我的 WPF 应用程序中,我使用了扩展 WPF 工具包中的 TimePicker 控件。当我运行应用程序时,TimePicker 控件应将默认值显示为"12:00 AM"。目前它向我显示空白。如何实现这个结果?
Xaml 代码:
<xctk:TimePicker x:Name="StartValue" Value="{Binding StartTimeBinding,
ElementName=MainWin, Mode=TwoWay}" Format="Custom" FormatString="hh:mm tt"
Background="Yellow" Padding="0" Margin="0" BorderThickness="0" Width="100"
EndTime="11:59:0"/>
<xctk:TimePicker x:Name="StopValue" Value="{Binding StopTimeBinding,
ElementName=MainWin, Mode=TwoWay}" Format="Custom" FormatString="hh:mm tt"
Background="Yellow" Padding="0" Margin="0" BorderThickness="0" Width="60"
EndTime="11:59:0"/>
TimePicker
绑定到以下属性的控件:
public string StartTimeBinding
{
set
{
this._id = value;
}
get
{
return this._started_at.ToString("h:mm tt");
}
}
public string StopTimeBinding
{
set
{
this._id = value;
}
get
{
return this._ended_at.ToString("h:mm tt");
}
}
在
视图模型中设置此属性:
private string _StartShift;
public string StartShift
{
get { return _StartShift; }
set
{
if (_StartShift != value)
{
_StartShift = value;
OnPropertyChanged("StartShift");
}
}
}
在构造器中将此属性设置为所需的默认值:
StartShift = "6:30";
XAML 代码:
<xctk:TimePicker Grid.Row="5" Grid.Column="1" Width="auto" StartTime="5:00" Value="{Binding StartShift}" />
尝试从属性中删除ToString(h:mm tt")
并将类型更改为 DateTime
。TimePicker
控件绑定到DateTime
,而不是string
。
不是因为TimePicker.Value
是 DateTime
类型,并且您将其绑定到StartTimeBinding
类型为 string
的属性吗?只需获取值,TimePicker 将进行格式化:
public DateTime StartTimeBinding
{
set
{
this._id = value;
}
get
{
return this._started_at;
}
}
编辑:看来我上面的建议并不能解决问题,因为TimePicker
字符串工作正常。所以我猜问题出在这一部分:ElementName=MainWin
.此上下文中没有 MainWin 元素,因此绑定找不到必需的属性。如果不看到整个布局,很难说,但也许您可以使用 RelativeSource 修复它。