私のWPFアプリケーションでXAMLファイルに多数のDataGridを作成しています。XAMLから重複するDataTriggerコードを削除する
一般的に、私が作る各データグリッドは次のようになります。
<DataGrid x:Name="DamageTakenData" HorizontalAlignment="Left" VerticalAlignment="Top" Width="506" Height="172" Canvas.Left="30" Canvas.Top="228">
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding Row}" Value="1">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="2">
<Setter Property="Foreground" Value="Orange" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="3">
<Setter Property="Foreground" Value="Orange" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="4">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="5">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="6">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
</DataGrid>
私は別のタブで約6またはそれらのDataGridの7、それらのそれぞれを持っています。各データグリッドにはどうすればDataGrid.CellStyleを指定するためのコードの重複を排除することについては行くだろう
<DataGrid x:Name="PlayerDeathData" HorizontalAlignment="Left" Margin="27,35,0,0" VerticalAlignment="Top" Height="155" Width="626" Grid.ColumnSpan="2">
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding Row}" Value="1">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="2">
<Setter Property="Foreground" Value="Orange" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="3">
<Setter Property="Foreground" Value="Orange" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="4">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="5">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="6">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
</DataGrid>
同じDataGrid.CellStyleを持っていますか?この質問を見て
試み
:Prevent Duplicate Code In XAML、私は似たような試みました。
<Window.Resources>
<Style TargetType="{x:Type DataGridCell}" x:Key="DataGridStyle">
<Style.Triggers>
<DataTrigger Binding="{Binding Row}" Value="1">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="2">
<Setter Property="Foreground" Value="Orange" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="3">
<Setter Property="Foreground" Value="Orange" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="4">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="5">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding Row}" Value="6">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
をそして、私はこのような静的リソースを使用します:私は、静的リソースに作ら
<DataGrid x:Name="DamageDealtData" HorizontalAlignment="Left" VerticalAlignment="Top" Width="506" Height="163" Canvas.Left="30" Canvas.Top="35">
<DataGridCell Style="{StaticResource DataGridStyle}"/>
</DataGrid>
をこのアプローチはどちらか動作しません。それは1つのDataGridCellだけを作成し、それをスタイリングしているようだからです。
どうすればいいですか?
ありがとうございました。それは働いた – Mantracker
いつでも助けてうれしい! –