Как установить обязательный формат строки для всех элементов управления DataGridTextColumn? - PullRequest
1 голос
/ 28 ноября 2011

Это один из моих элементов управления DataGridTextColumn выглядит следующим образом:

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

Тогда как мне установить StringFormat = {} {0: dd / MM / yyyy} для всех DataGridTextColumnуправления вместо установки каждого?

Ответы [ 2 ]

5 голосов
/ 28 ноября 2011

Вы можете создать собственный класс привязки, который устанавливает 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>
3 голосов
/ 28 ноября 2011

Вы можете хранить StringFormat в константе в файле .cs;а в xaml используйте следующее

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