StringFormat 是否可以与 this.DataContext 一起使用

发布于 2024-10-13 21:16:36 字数 389 浏览 2 评论 0原文

我通过 this.DataContext = SellerList; 将 TextBlock 与代码隐藏中的集合绑定在一起 输出是正确的,但是当我应用 StringFormat 时,我看不到结果。以下是xaml页面上TextBlock的代码

<TextBlock Name="dateDTKey" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" 
      Text="{Binding Path=Date, StringFormat={}{0:dd-MM-yyyy}}" 
      Style="{StaticResource textStyleTextBlock}"/>

I am binding a TextBlock with a collection in code-behind via this.DataContext = SellerList;
The output is correct but when i apply StringFormat, i see no result. Following is the code for TextBlock on xaml page

<TextBlock Name="dateDTKey" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" 
      Text="{Binding Path=Date, StringFormat={}{0:dd-MM-yyyy}}" 
      Style="{StaticResource textStyleTextBlock}"/>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

活泼老夫 2024-10-20 21:16:36

绑定的源是一个字符串,如果 detailsS​​ellerListingTemplate 是您应该使用 {StaticResourcedetailsS​​ellerListingTemplate} 的资源。此外,TextBlock 不需要 DataContext 即可使此 Binding 工作,因为它使用 Source。

<Window.Resources>
    <local:DetailsSeller x:Key="detailsSellerListingTemplate"/>
</Window.Resources>
<TextBlock Name="dateDTKey"
           HorizontalAlignment="Right"
           VerticalAlignment="Bottom"
           Text="{Binding Source={StaticResource detailsSellerListingTemplate},
                          Path=Date,
                          StringFormat={}{0:dd-MM-yyyy}}"/>

如果 DetailsS​​eller 看起来与此类似,这将起作用

public class DetailsSeller
{
    public DetailsSeller()
    {
        Date = DateTime.Now;
    }

    public DateTime Date
    {
        get;
        set;
    }
}

您谈到了一个集合,但我看不出它如何与绑定相匹配,所以也许我误解了问题中的某些内容

The source for the Binding is a string, if detailsSellerListingTemplate is a resource you should use {StaticResource detailsSellerListingTemplate}. Also, the TextBlock doesn't need a DataContext for this Binding to work since it's using Source.

<Window.Resources>
    <local:DetailsSeller x:Key="detailsSellerListingTemplate"/>
</Window.Resources>
<TextBlock Name="dateDTKey"
           HorizontalAlignment="Right"
           VerticalAlignment="Bottom"
           Text="{Binding Source={StaticResource detailsSellerListingTemplate},
                          Path=Date,
                          StringFormat={}{0:dd-MM-yyyy}}"/>

This will work if DetailsSeller looks similar to this

public class DetailsSeller
{
    public DetailsSeller()
    {
        Date = DateTime.Now;
    }

    public DateTime Date
    {
        get;
        set;
    }
}

You talked about a collection but I can't see how that fits with the binding, so maybe I missunderstood something in the question

不乱于心 2024-10-20 21:16:36

我认为这是因为你的字符串格式中有很多大括号。试试这个:

StringFormat={0:dd-MM-yyyy}

I am thinking its because you have way to many braces in your string format. try this:

StringFormat={0:dd-MM-yyyy}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文