1

2つのデータグリッドに2つのデータテーブル(左右と呼びましょう)を表示していますが、機能します。ただし、私がやりたいのは、ユーザーが選択に基づいて2つの行(左と右)を比較し、セルが異なる場合に背景を変更できるようにすることです。

サンプル:


|A| B | C |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |


|A| B | C |
| 1 | 2 | 4 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |

XAMLでは、データグリッドは次のようになります。<DataGrid Grid.Column="0" x:Name="leftData" HorizontalAlignment="Stretch" > </DataGrid>

そして、コードでは、データグリッドをDataTableにバインドしています。

TableRows = new DataTable();
leftData.ItemsSource = TableRows;

ユーザーが左右の最初の行を選択すると、列Cのセルが赤い背景でマークされます。

WPFでそれを行うためのより良いアプローチはどのようになっていますか?WPFのDataGridでそれを行うことは可能ですか?

4

2 に答える 2

2

ついに私は解決策を見つけました。DataGridコントロールはDataGridCellを取得する方法を提供しませんが、DataGridCellsPresenterを取得するためにVisualTreeHelperを使用してDataGridコントロールから取得することは可能であり、プレゼンターからDataGridCellを取得することは可能です。

詳細とコードはここにあります:

http://techiethings.blogspot.ch/2010/05/get-wpf-datagrid-row-and-cell.html

于 2012-10-25T07:05:36.947 に答える
-3

あなたは次のようなことをすることができます

//dataControl would be the name of your control in the XAML
var cell = dataControl.Cells[columnIndex,rowIndex];

cell.Background = new SolidBrush(Colours.Red);

明らかに、現在持っているロジック内にこれを実装する必要があります。もっと投稿できれば、どこに行くのかについてより良いアイデアが得られます。

于 2012-10-24T07:55:58.043 に答える