在我的WPF应用程序中,我使用了扩展WPF Toolkit中的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");
}
}
答案 0 :(得分:1)
在视图模型中设置此属性:
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}" />
答案 1 :(得分:0)
不是因为TimePicker.Value
属于DateTime
类型,而是将其绑定到类型为StartTimeBinding
的{{1}}属性?只需获取值,TimePicker将执行格式化:
string
修改强>
我的建议似乎无法解决问题,因为public DateTime StartTimeBinding
{
set
{
this._id = value;
}
get
{
return this._started_at;
}
}
可以正常使用字符串。所以我猜这个问题出在这一部分:TimePicker
。在此上下文中没有MainWin元素,因此绑定无法找到所需的属性。没有看到整个布局就很难说,但也许你可以用RelativeSource修复它。
答案 2 :(得分:0)
尝试从您的媒体资源中删除ToString(h:mm tt")
,然后将类型更改为DateTime
。 TimePicker
控件绑定到DateTime
,而不是string
。