这是我的一个DataGridTextColumn控件,如下所示:
<DataGridTextColumn x:Name="contractStartDateColumn" Header="Start Date" Binding="{Binding Path=StartDate, StringFormat={}\{0:dd/MM/yyyy\}}" />
那么如何将 StringFormat = {} {0:dd / MM / yyyy} 设置为所有DataGridTextColumn控件而不是设置每一个?
答案 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}}" />