[英]Xaml DateTime binding
我像这样在TextBlock中绑定DateTime:
<TextBlock
HorizontalAlignment="Center"
Text="{
Binding Source={x:Static sys:DateTime.Today},
StringFormat='{}{0:dddd, MMMM dd, yyyy}'
}"
/>
有没有办法做同样的绑定,但要绑定过去的10天而不是今天的日期?
添加一个静态类,如下所示:
namespace MyWpfApplication
{
public static class MyDateTime
{
public static DateTime TenDaysAgo => System.DateTime.Now.AddDays(-10);
}
}
然后在您的XAML中使用它(不要忘记添加xml命名空间):
<Window x:Class="MyWpfApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyWpfApplication">
<TextBlock
HorizontalAlignment="Center"
Text="{
Binding Source={x:Static local:MyDateTime.TenDaysAgo},
StringFormat='{}{0:dddd, MMMM dd, yyyy}'
}"
/>
</Window>
实际上,只有在ObjectDataProvider的帮助下,您才能在XAML中执行此操作。 请参阅: https : //docs.microsoft.com/zh-cn/dotnet/framework/wpf/data/how-to-bind-to-a-method
<StackPanel>
<StackPanel.Resources>
<ObjectDataProvider x:Key="tod" ObjectInstance="{x:Static sys:DateTime.Today}" MethodName="AddDays">
<ObjectDataProvider.MethodParameters>
<sys:Int32>-10</sys:Int32>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</StackPanel.Resources>
<TextBlock HorizontalAlignment="Center" Text="{Binding Source={StaticResource tod}, StringFormat='{}{0:dddd, MMMM dd, yyyy}'}"/>
</StackPanel>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.