如何设置绑定stringformat到所有DataGridTextColumn控件?

时间:2011-11-28 02:33:44

标签: wpf string-formatting datagridtextcolumn

这是我的一个DataGridTextColumn控件,如下所示:

<DataGridTextColumn x:Name="contractStartDateColumn" Header="Start Date" Binding="{Binding Path=StartDate, StringFormat={}\{0:dd/MM/yyyy\}}" />

那么如何将 StringFormat = {} {0:dd / MM / yyyy} 设置为所有DataGridTextColumn控件而不是设置每一个?

2 个答案:

答案 0 :(得分:5)

您可以创建自定义绑定类来设置StringFormat并使用它来绑定值:

public class CustomBinding : Binding
{
    public CustomBinding(string path) : base(path)
    {
        this.StringFormat = @"{0:dd/MM/yyyy}";
    }
}

在XAML中:

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding TimeList}">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{local:CustomBinding StartDate}" />
    </DataGrid.Columns>
</DataGrid>

答案 1 :(得分:3)

您可以将StringFormat存储在.cs文件中的常量中;并在xaml中使用以下

<DataGridTextColumn x:Name="contractStartDateColumn" Header="Start Date" Binding="{Binding Path=StartDate, StringFormat={x:static MyNamespace:MyClass.MyDateFormat}}" />