【问题标题】:How to set a TimeSpan in Xaml如何在 Xaml 中设置时间跨度
【发布时间】:2013-09-12 05:41:16
【问题描述】:
我无法在我的依赖对象上设置来自 xaml 的 TimeSpan 类型的属性,我正在寻找是否有办法让它工作。
Xaml: <local:MyDependencyObject Time="00:00:05"/>
Time 是 TimeSpan 类型的依赖属性。
请告诉我如何在 xaml 中设置类型 (TimeSpan) 的依赖属性。
【问题讨论】:
标签:
silverlight
silverlight-4.0
silverlight-5.0
【解决方案1】:
TotalMinutes 是 Double,但 D format specifier 仅支持整数类型,例如 Int32。 {}{0:D1} h {1:D1} min ({2} min) 这样的格式字符串应该可以工作。
或
试试这个方法:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:D2}:{1:D2}">
<Binding Path="MyTime.Hours" />
<Binding Path="MyTime.Minutes" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
【解决方案2】:
我是从后面的代码中做到的。
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
MessageBox.Show(IsSpinning.ToString());
}
public static readonly DependencyProperty IsSpinningProperty =
DependencyProperty.Register(
"IsSpinning", typeof(TimeSpan),
typeof(TimeSpan), null
);
public TimeSpan IsSpinning
{
get { return (TimeSpan)GetValue(IsSpinningProperty); }
set { SetValue(IsSpinningProperty, value); }
}
}