2010-10-13 51 views
0

问候,WPF验证“之前”设置值或发出命令

我对WPF比较新,并且有与DataGrid控件验证有关的问题。我已阅读这篇文章(http://msdn.microsoft.com/en-us/magazine/ff714593.aspx),其中涵盖了三种不同的验证方法,但他们似乎都没有解决如何防止设置值或调用在执行所有验证之前执行undo/redo命令。

我想确保只有正数可以输入到单元格中。我已经设置了一个验证规则,用于检查单元格是否包含负数,并处理DataGrid的CellEditEnding事件以知道何时实际更改模型图层中使用的数字。问题是CellEditEnding在验证规则之前被调用。在验证规则发现问题时,模型中的数字已被设置。我需要的是CellEditEnded,但是看起来这个事件只存在于DataGrid的Silvelight版本中。

任何想法?

谢谢

回答

0

datagrid是一个棘手的,并且非常复杂。我想在这种情况下,我可能会尝试改变这个必然属性的“setter”。如果用户输入无效值,则抛出异常。 datagrid支持显示带有验证错误(红色边框)的无效单元格,以便用户看到哪些单元格/行存在问题。

这并不理想,但它可能会奏效。