Как поместить правильный код XAML в стиль? - PullRequest
7 голосов
/ 26 марта 2009

Требуется 5 строк для выравнивания по правому краю столбца DataGridTextColumn, что приводит к раздуванию моего XAML.

Как мне поместить этот "блок кода с выравниванием по правому краю" в стиль и вызвать его из атрибута, например, класс = "rightAlignDataGridTextColumn".

<toolkit:DataGridTextColumn Header="Order Date" Width="Auto"
       Binding="{Binding OrderDate, StringFormat='{}{0:dd.MM.yyyy}'}" 
       IsReadOnly="False">
    <toolkit:DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
            <Setter Property="TextAlignment" Value="Right" />
        </Style>
    </toolkit:DataGridTextColumn.ElementStyle>
</toolkit:DataGridTextColumn>

<toolkit:DataGridTextColumn Header="Required Date" Width="Auto"
       Binding="{Binding RequiredDate, StringFormat='{}{0:dd.MM.yyyy}'}" 
       IsReadOnly="False">
    <toolkit:DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
            <Setter Property="TextAlignment" Value="Right" />
        </Style>
    </toolkit:DataGridTextColumn.ElementStyle>
</toolkit:DataGridTextColumn>

<toolkit:DataGridTextColumn Header="Shipped Date" Width="Auto"
       Binding="{Binding ShippedDate, StringFormat='{}{0:dd.MM.yyyy}'}" 
       IsReadOnly="False">
    <toolkit:DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
            <Setter Property="TextAlignment" Value="Right" />
        </Style>
    </toolkit:DataGridTextColumn.ElementStyle>
</toolkit:DataGridTextColumn>

1 Ответ

23 голосов
/ 26 марта 2009

Объявление стиля в ResourceDictionary, например так:

<Window.Resources>
    <Style x:Key="RightAlignStyle" TargetType="{x:Type TextBlock}">
        <Setter Property="TextAlignment" Value="Right" />
    </Style>
</Window.Resources>

Затем укажите этот стиль на каждом DataGridTextColumn элементе:

<toolkit:DataGridTextColumn ElementStyle="{StaticResource RightAlignStyle}" ... >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...