2011-08-02 60 views
3

私は、データグリッドを含むusercontrolを使用するビューを持っています。ユーザーが "Customer Name"列から値を削除してからセルを離れる場合、編集をコミットして値を元の値に戻すことはできない、つまり空白の顧客名を許可しないというビュー状態の要件。ユーザーコントロールは共有コードであり、複数のアプリケーション間で使用されます。編集の取り消しの要件は、特に上記のビュー(usercontrolを使用するすべてのアプリケーションではない)のためのものです。 Customer Nameセルの値を検出する方法は削除されています。値が空の場合は編集をキャンセルしますか?DataGridの編集をキャンセルする方法

答えて

4

CellEditEnding - 処理できます。セルの編集がコミットまたはキャンセルされる前に発生します。ここでは、セルの現在の値を検証することができます。条件を満たす場合は、これまでに何ができるかを実行できます。 MSDN


編集: その私の提案が、私はそれを承認することはできません。 e.Row.Itemで新しい値を取得し、それをDataGridに置くオブジェクトにキャストすることができます。 別の方法では、新しいセル値にアクセスするためにオブジェクトを正しい方法でキャストします。sender

+1は、DataGridCellEditEndingEventArgs.EditingElementです。そのFrameworkElement、そして私はあなたがそれが何であるかを知っていると思います(おそらくTextBoxなど)。

また、私はあなたがすべきことを知っていると思います!

+0

ええ、それは私のコードが行く場所です。問題は、私はコミットが起こっていないので、セルの最近入力された値を知らない。私は "古い"価値を得ることができます - ただ消されたものですが、私はユーザーがそれを変更しようとしているか分かりません。私はCellEditEndingイベントの中で、セル内のテキストボックスにドリルダウンし、テキストプロパティを見て、ユーザーが何を変更しようとしているのかを確認する必要があります。私はそれをどうやってやるかわからない。 – ihatemash

+0

答えを見るedit – stukselbax

関連する問題