4

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

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

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

4

2 回答 2

6

您可以创建自定义绑定类来设置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>
于 2011-11-28T07:13:54.437 回答
3

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

<DataGridTextColumn x:Name="contractStartDateColumn" Header="Start Date" Binding="{Binding Path=StartDate, StringFormat={x:static MyNamespace:MyClass.MyDateFormat}}" />
于 2011-11-28T12:36:27.610 回答