2014-01-24 4 views
1

텍스트 검색을 수행하는 DataGrid가 있습니다. 검색이 행이 강조되어야한다고 판단하면, 나는 기본 개체에 "true"로 부울 값을 할당하고, 내 WPF XML의 I는 다음과 같습니다초점이 맞지 않는 DataGrid에서 선택된 행을 강조 표시하려면 어떻게합니까?

 <DataGrid.Style> 
      <Style TargetType="DataGrid"> 
       <Setter Property="AlternatingRowBackground" Value="LightGray"/> 
      </Style> 
     </DataGrid.Style> 
     <DataGrid.RowStyle> 
      <Style TargetType="DataGridRow"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Highlighted, Mode=TwoWay}" Value="True"> 
         <Setter Property="Background" Value="Yellow" /> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </DataGrid.RowStyle> 

참고 "바인딩 Highlited"; 행이 강조 표시됩니다. 이것은 행이 데이터 격자에서 선택 될 때를 제외하고는 잘 작동하는 것 같습니다. 이 경우 DataGrid에서 포커스를 잃을 때 선택한 행이 회색으로 바뀝니다. DataGrid가 포커스를 잃었을 때 SELECTED ROW의 행 색상을 지정하는 방법 ("강조 표시됨"이 true 임), 이는 여전히 노란색으로 표시됩니다 (어둡기 때문에 선택되어 있음).

답변

0

이 시도 :

  <DataGrid.Style> 
      <Style TargetType="DataGrid"> 
       <Setter Property="AlternatingRowBackground" Value="LightGray"/> 
      </Style> 
     </DataGrid.Style> 
     <DataGrid.RowStyle> 
      <Style TargetType="DataGridRow"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Highlight}" Value="True"> 
         <Setter Property="Background" Value="Yellow" /> 
        </DataTrigger> 
        <Trigger Property="IsSelected" Value="True"> 
         <Setter Property="Background" Value="#FF3CF1C8" /> 
         <Setter Property="BorderBrush" Value="#FF3CF1C8" /> 
        </Trigger> 
        <MultiDataTrigger> 
         <MultiDataTrigger.Conditions> 
          <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Mode=Self}}" Value="True"/> 
          <Condition Binding="{Binding Highlight}" Value="True"/> 
         </MultiDataTrigger.Conditions> 
         <Setter Property="Background" Value="#FFFBAE8A" /> 
         <Setter Property="BorderBrush" Value="#FFFBAE8A" /> 
        </MultiDataTrigger> 
       </Style.Triggers> 
      </Style> 
     </DataGrid.RowStyle> 
     <DataGrid.CellStyle> 
      <Style TargetType="DataGridCell"> 
       <Style.Triggers> 
        <Trigger Property="IsSelected" Value="True"> 
         <Setter Property="Background" Value="#FF3CF1C8" /> 
         <Setter Property="BorderBrush" Value="#FF3CF1C8" /> 
        </Trigger> 
        <MultiDataTrigger> 
         <MultiDataTrigger.Conditions> 
          <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}}" Value="True"/> 
          <Condition Binding="{Binding Highlight}" Value="True"/> 
         </MultiDataTrigger.Conditions> 
         <Setter Property="Background" Value="#FFFBAE8A" /> 
         <Setter Property="BorderBrush" Value="#FFFBAE8A" /> 
        </MultiDataTrigger> 
       </Style.Triggers> 
      </Style> 
     </DataGrid.CellStyle> 

IT는 데이터 그리드에 포커스를 잃어 버릴하고 강조 표시된 행이 초점을 잃은 경우에도 유지되는 다른 선택 색상을 얻을 경우 선택 선택된 행을 유지합니다.

관련 문제