J'utilise un DataGrid dans une application WPF qui a plusieurs colonnes (littéralement un pour chaque jour de la semaine) qui ne diffèrent que par leur index de données. Un échantillon du xaml est ci-dessous.wpf Refonte de DataGridTextColumn
Comment puis-je refactoriser ceci en quelque chose de plus SEC?
Cheers,
Berryl
EXEMPLE XAML (deux des sept colonnes):
<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}}"
/>
== ÉDITÉ ADD'L INFO @ JALFP ===
compilateur se plaint que la cible le type n'est pas un élément de structure lors de la construction
<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>
Je ne vois rien qui ressemble à un ColumnStyle non plus. Quelle propriété dois-je définir ce style dans le xaml pour DataGridTextColumn?
Salut Jalfp, et merci pour la réponse. Cela a du sens, bien que j'espérais une utilisation intelligente des styles et d'autres techniques WPF que je ne connais pas encore pourrait être plus facile. – Berryl
Vous pouvez utiliser un style qui cible le type DataGridTextColumn et définir la propriété CellStyle, Width et CanUserResize. – japf
Salut Jalfp. J'ai essayé cela sans succès; ajout de code et de commentaires lors de la modification de l'affichage d'origine. Pouvez-vous s'il vous plaît jeter un oeil? À votre santé! – Berryl