【问题标题】:WPF: How do I apply custom formatting to a ListView?WPF:如何将自定义格式应用于 ListView?
【发布时间】:2010-01-27 02:57:47
【问题描述】:

我的 ListView 很简单:

<ListView ItemsSource="{Binding Path=ActiveCounters}">
    <ListView.View>
        <GridView>
            <GridViewColumn  Header="Name" DisplayMemberBinding="{Binding Path=Name}" />
            <GridViewColumn  Header="Value"  DisplayMemberBinding="{Binding Path=Value}" />
            <GridViewColumn  Header="As Of Date"  DisplayMemberBinding="{Binding Path=AsOfDate}" />
            <GridViewColumn  Header="Duration"  DisplayMemberBinding="{Binding Path=Duration}" />
            <GridViewColumn  Header="Last Modified Date"  DisplayMemberBinding="{Binding Path=Timestamp}" />
        </GridView>
    </ListView.View>
</ListView>

我想做的是:

  • 使用内置格式“D0”格式化“Value”
  • 使用自定义字符串“MMM d hh:mm:ss tt”格式化“AsOfDate”和“Last Modified Date”
  • 使用定义为“String DurationString(TimeSpan)”的函数格式化“Duration”

【问题讨论】:

标签: wpf listview binding formatting styles


【解决方案1】:

对于 Value 和 AsOfDate 列使用 StringFormat 属性 - WPF 3.5 SP1 的新功能。 更多信息在这里:

http://blogs.msdn.com/llobo/archive/2008/05/19/wpf-3-5-sp1-feature-stringformat.aspx

http://elegantcode.com/2009/04/07/wpf-stringformat-in-xaml-with-the-stringformat-attribute/

如果您想在绑定值上调用自定义函数,请为此实现值转换器。

http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

您可以从 convert 方法调用您的自定义函数。

【讨论】:

    【解决方案2】:

    StringFormat 可以添加到您的绑定语句中。例如

    <GridViewColumn
       Header="As Of Date"
       DisplayMemberBinding="{Binding Path=AsOfDate, StringFormat={}{0:MMM d hh:mm:ss tt}}" />
    

    更多使用示例请参见this post

    【讨论】:

    • 很好,可以处理三种情况中的两种。但是调用自定义函数呢?
    猜你喜欢
    • 2011-07-03
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    相关资源
    最近更新 更多