2009-08-28 10 views
0

Gibt es eine Möglichkeit, die Checkbox dort zu stylen? Ich habe versucht, einen Stil für das Kontrollkästchen zu definieren, aber das hat nicht funktioniert.WPF DataGridCheckBoxColumn benutzerdefinierten Stil?

nach Maulwurf unter Verwendung scheint es, wie das Kontrollkästchen Kontrolle keinen ToggleButton darin eine BulleDecorator verwendet stattdessen im nicht sicher, dieses ersten Mal im Maulwurf mit ..

Was ich will, ist erreichen, dass anstelle eines Kontrollkästchens möchte ich einen roten oder grünen Kreis.

<Style TargetType="{x:Type CheckBox}"> 
    <Setter Property="IsHitTestVisible" Value="False"/> 
    <Setter Property="Focusable" Value="False"/> 
    <Setter Property="HorizontalAlignment" Value="Center"/> 
    <Setter Property="VerticalAlignment" Value="Top"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ToggleButton}"> 
       <Border x:Name="innerBorder"> 
        <Ellipse Fill="#FFFF0000" Stroke="#FF000000" Stretch="Fill" x:Name="statusLight" Width="15" Height="15" Margin="2" VerticalAlignment="Center" HorizontalAlignment="Center"/> 
       </Border> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsChecked" Value="True"> 
        <Setter TargetName="statusLight" Property="Fill" Value="#FF00FF00" /> 
        </Trigger> 
        <Trigger Property="IsChecked" Value="False"> 
        <Setter TargetName="statusLight" Property="Fill" Value="#FFFF0000" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Antwort

3

Es sieht aus wie Sie für DataGridBoundColumn.ElementStyle Immobilien suchen (DataGridCheckBoxColumn aus DataGridBoundColumn abgeleitet). Falls dies für Sie nicht funktioniert, können Sie immer DataGridTemplateColumn verwenden, um alles anzuzeigen, was Sie möchten.

Weitere Informationen finden Sie unter Vincent Sibal's Blog.

6

Dies ist, wie ich es tat:

<Controls:DataGridCheckBoxColumn Header="Homme" Binding="{Binding Homme}"> 
     <Controls:DataGridCheckBoxColumn.ElementStyle> 
      <Style TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}"/> 
    </Controls:DataGridCheckBoxColumn.ElementStyle> 
</Controls:DataGridCheckBoxColumn>