Рефакторинг wpf DataGridTextColumn - PullRequest
       10

Рефакторинг wpf DataGridTextColumn

0 голосов
/ 01 декабря 2009

Я использую DataGrid в приложении WPF, которое имеет несколько столбцов (буквально по одному на каждый день недели), которые отличаются только индексом данных. Образец xaml ниже.

Как я могу преобразовать это в нечто более СУХОЕ?

Приветствия
Berryl

SAMPLE XAML (два из семи столбцов):

<dg:DataGridTextColumn 
    Header="{Binding Source={StaticResource spy}, Path=DataContext[0].EventDate,   Converter={StaticResource dateConv}}" 
    CellStyle="{StaticResource DataEntryCellStyle}" Width="60" CanUserResize="False"
    Binding="{Binding Allocations[0].Amount, Converter={StaticResource amtConv}}"  
                               />
<dg:DataGridTextColumn 
    Header="{Binding Source={StaticResource spy}, Path=DataContext[1].EventDate, Converter={StaticResource dateConv}}" 
    CellStyle="{StaticResource DataEntryCellStyle}" Width="60" CanUserResize="False"
    Binding="{Binding Allocations[1].Amount, Converter={StaticResource amtConv}}"  
                               />

== РЕДАКТИРОВАННАЯ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ @ JALFP ===

Компилятор жалуется, что целевой тип не является элементом фреймворка при сборке

<Style x:Key="dayOfWeekColumn" TargetType="dg:DataGridTextColumn" >
    <Setter Property="CanUserResize" Value="False"/>
    <Setter Property="CanUserSort" Value="False"/>
    <Setter Property="Width" Value="60" />
    <Setter Property="CellStyle" Value="{StaticResource dataEntryGridCellStyle}" />
</Style>

Я тоже не вижу ничего похожего на ColumnStyle. Какое свойство я бы установил этот стиль в xaml для DataGridTextColumn?

1 Ответ

1 голос
/ 01 декабря 2009

Может быть, вы можете создать свой собственный класс, который наследуется от DataGridTextColumn и добавить новый DependencyProperty DayIndex (от 0 до 6). Затем в этом классе вы можете выполнить инициализацию в XAML ...

Но я не уверен, что это будет действительно лучшее и более удобное решение ...

...