シナリオ:私のビューにDataGrid(1列のみ)があります。 XAMLでDataGridにRowValidationRuleを適用しました。ユーザーがDataGridCellを空白のままにすると、検証ルールによってエラーが発生し、ユーザーは行の周囲の赤い境界線とエラーを説明するツールチップを見ることができます。 DataGridのデフォルトの動作では、ユーザーが現在の無効なセルを修正するまで、他のセルを変更することはできません。しかし、ユーザーが無効なセルをクリックし、エスケープキーを押すと、赤いエラーメッセージが表示されなくなり、ユーザーは他のレコードを変更することができます。エスケープキーは、最後の有効な値をセルに配置します。WPFのDataGrid検証の問題 - MVVM
私は、このXAMLを使用して列を作成してい
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Type, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Type, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
問題:ユーザープレスが無効なセルのキーをエスケープすると、セルが(前回の値を使用して)有効になりますが、ユーザーがクリックするまで、前の値が決して表示されません以前は無効なセル、つまりセルスタイルがテキストボックスに変わるまで。言い換えれば、ユーザーがEscキーを押して以前の値を復元した場合、ユーザーがセルを再度クリックして値を編集しようとするまで、TextBlockは以前の値を表示しません。
テキストボックスモードに入る前に、エスケープキーを押した後にTextblockに値を表示させる方法はありますか?
上記のことができない場合は、エスケープキーの動作を停止できる方法はありますか?無効な行が修正されるまでそのため、ユーザは..