2011-08-05 5 views
1

일부 개체 값이 다른 값보다 큰 경우 gridview 행을 강조 표시하는 방법을 알고 싶습니다. (observablecollection에 바인딩되는 gridview를 고려하십시오)일부 개체 값이 다른 개체 값보다 큰 경우 gridview 행을 강조 표시하는 방법?

고마워요.

+0

가장 쉬운에서 데이터 그리드에

private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e) { try { foreach (loadtodatagrid item in gridview.ItemsSource) { var row = gridview.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; if (item.item1== item.item2) { row.Background = new SolidColorBrush(Colors.Yellow); } else { // row.Background = new SolidColorBrush(Colors.Green); } } } catch(Exception ep) { //do nothing.... } 

는 LoadingRow = "DataGrid_LoadingRow". 항목 수준 클래스에는 수행중인 비교 결과를 저장하는 속성이 있어야하며이 결과를 기반으로 변환기를 사용하고 항목 행의 배경을 변경해야합니다. –

답변

2

당신은> 비교를 할 수있는 컨버터를 구현해야합니다 그러나 이것은 참/거짓 기반으로 설정 얻을 것이다 관찰 컬렉션의 항목의 클래스에 속성을 넣어 강조

 <ListView.ItemContainerStyle> 
      <Style TargetType="ListViewItem"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Path=IsParent}" Value="True"> 
         <Setter Property="Background" Value="Gainsboro" /> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </ListView.ItemContainerStyle> 
4

을 보여줍니다 당신이 필요로하는 비교에. 그런 다음 DataGrid의 ItemContainerStyle에있는 Style의 DataTrigger에서이 속성에 바인딩 할 수 있어야합니다.

이 시도

...

<DataGrid ItemsSource="{Binding YourObservableCollection}" > 
     <DataGrid.ItemContainerStyle> 
      <Style> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding YourShouldHighlightProperty}" Value="True"> 
         <Setter Property="Control.Background" Value="Red"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </DataGrid.ItemContainerStyle> 
    </DataGrid> 
+0

질문은 DataGrid가 아닌 "gridview"에 대한 질문이었습니다. 이 gridview와 호환되지 않는다고 생각합니다. – Paparazzi

0

사용하여 다음 code.It 나를 위해 wored. 모델에서 수행 WPF

관련 문제