2011-08-05 6 views
1

いくつかのオブジェクト値が別の値より大きい場合、グリッドビューの行を強調表示する方法を知りたいですか? (observablecollectionにバインドするために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のスタイルの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

関連する問題