WPF DataGrid RowStyle für die ausgewählte Zeile nicht ändern der hintergrund-und Vordergrund-Farbe

Ich benutze Visual Studio 2012 auf windows 7. Ich muss wissen, warum die folgende Vorlage für das Raster der ausgewählten Zeile funktioniert nicht für die hintergrund-und Vordergrundfarben, arbeitet aber völlig in Ordnung, für andere Eigenschaften, wie BorderBrush und BorderThickness etc? Obwohl ich Sie sehen kann ändern, während Sie mit der Maus über raster-Zeilen.

<Style x:Key="gridRowStyle" TargetType="{x:Type DataGridRow}">
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="PeachPuff"/>
            <Setter Property="Foreground" Value="BlueViolet"/>
        </Trigger>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="PeachPuff"/>
            <Setter Property="Foreground" Value="BlueViolet"/>
            <Setter Property="BorderBrush" Value="BlueViolet" />
            <Setter Property="BorderThickness" Value="2" />

        </Trigger>
    </Style.Triggers>
</Style>

Hier ist, wie ich bin mit am Gitter.

<DataGrid RowStyle="{StaticResource gridRowStyle}">

Ich bin mit Betonung auf wissen "warum" eher als Lösung für das problem, da ich schon ne Lösung für das problem, wenn ich Rasterzelle Stil statt rowstyle wie folgt:

<Style x:Key="gridCellStyle" TargetType="{x:Type DataGridCell}">
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="PeachPuff"/>
            <Setter Property="Foreground" Value="BlueViolet"/>
        </Trigger>
    </Style.Triggers>
</Style>
  • Könnte es sein, weil der GridCell Inhalte überlagern ist, die GridRow? Haben Sie versucht, sah bei der Kontrolle in Snoop?
  • Ich lief ein kurzer test mit dem, was Sie geschrieben und es funktioniert einwandfrei. Können Sie weitere Einzelheiten über Sie "DataGrid" und " jede Zeile-Definitionen?
  • Ich bin neu in WPF und habe ich nie verwendet, snoop vor. Ich werde es mal ausprobieren, um zu sehen, was passiert. Danke....
  • auch hier ist der gesamte Begriff des DataGrid:<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Source={StaticResource RecordList}}" RowStyle="{StaticResource gridRowStyle}"> <DataGrid.Spalten> <DataGridTextColumn Header="Vorname" Binding="{Binding FirstName}"/> <DataGridTextColumn Header="Nachname" Binding="{Binding LastName}" Width="*"/> </DataGrid.Spalten> </DataGrid - >
  • wo RecordList ist, benutzerdefinierte Auflistung von Objekten einfach Klasse Platte, die hat zwei öffentliche Eigenschaften FirstName und LastName definiert im aktuellen Fenster Ressourcen: public class Datensatz { public string FirstName { set; get; } public string Name { set; get; } } public class MyCollection : ObservableCollection<Aufnahme - > { }
  • Ich definierte die RecordList Sammlung wie folgt: <Fenster.Ressourcen> <local:MyCollection x:Key="RecordList"> <local:Record FirstName="Naeem" LastName="Ashraf"/> <local:Record FirstName="Faheem" LastName="Ashraf"/> <local:Record FirstName="Asghar" LastName="Qayyum"/> </local:MyCollection> </Fenster.Ressourcen>
  • Hmm, naja ich kann immer noch nicht neu das Problem. Kopieren und einfügen den code in einem neuen WPF-Projekt funktioniert wie erwartet. Ich zweite den Vorschlag mit Snoop zu sehen, was eigentlich vor sich geht. Lassen Sie uns wissen, was Sie herausfinden.
  • Laut meiner Erkenntnisse aus der Snoop, in ausgewählten Zeile, in der der hintergrund der Reihe ist, was ich in meinem Stil. Aber wenn ich die Zeile der Zelle ist es, mit verschiedenen hintergrund-Wert "#FF3399FF" aus "Default-style trigger"(Wert Registerkarte "Quelle" in der snoop). Auch im Falle der Maus über die Zelle hintergrund-Wert ist transparent mit Wert Quelle in snoop immer "Standard-Stil".
  • So haben Sie eine Standard-DataGridCell Stil irgendwo definiert in Ihrer app? In einem resource dictionary, oder Ihre generic.xaml?
  • Es gibt nichts in meiner Anwendung für DataGridCell Stil. Ich weiß nicht, von wo es eingestellt wird. Wie ich schon im start-posting, ich bin mit visual studio 2012 unter windows 7.
  • Welche Auswahl-Modus u tun haben, einstellen?
  • Werfen Sie einen Blick auf diese: stackoverflow.com/questions/1223280/...

InformationsquelleAutor user2071895 | 2013-02-14
Schreibe einen Kommentar