2013-03-15 97 views
0

我有一個WPF數據網格,當行中的複選框被選中時,行改變顏色。我有一個問題,如果一行被突出顯示(例如被鼠標點擊),然後DataGrid失去焦點,那麼該行失去它的自定義顏色。自定義DataGrid行後背景色被選中後被刪除

這裏是爲自定義顏色設置

<Style x:Key="DataGridStyle" TargetType="{x:Type DataGrid}"> 
    <Setter Property="RowStyle"> 
     <Setter.Value> 
      <Style TargetType="DataGridRow"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding IsSelected}" Value="True"> 
         <Setter Property="Background" Value="#CBE5F2"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Setter.Value> 
    </Setter> 
</Style> 

圖片的問題:

行的亮點是鼠標: Row Highlighted

的DataGrid失去焦點後 Datagrid Lost Focus

問題: 有沒有辦法讓突出顯示的行在DataGrid失去焦點後保持自定義顏色。

回答

0

我發現了一個解決辦法是設置單元格樣式,而不是該行的風格:完全

<Setter Property="CellStyle"> 
     <Setter.Value> 
      <Style TargetType="DataGridCell"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding IsSelected}" Value="True"> 
         <Setter Property="Background" Value="#CBE5F2"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Setter.Value> 
    </Setter> 

它覆蓋選定高亮(亮藍),所以它的效果並不理想,但即使工作失去焦點。