Hello,
I've a simple XamGrid with a bounded items source. I want to validate the bounded data and highlight the column correspondingly.The user should now correct these data.
I've looked into the validation part of the documentation but this only refers to the validation of data, the user enters into the specific controls at runtime.
How can I achieve this?
Hi,
I am glad you managed to resolve your issue. Thanks for sharing it.
-Slavi
finally, I found a solution.
It's a bit simpler than yours.
I've attached it, if someone need to resolve the same problem!
Thanks again....
Hi
The main issue is that you have more than one column that needs to be validated. In order to say that a record Has Errors you need to check all Price cells for errors. Also you need to update this Has Erorrs whenever a price field gets modified. I modified your class to include a dictionary for the errors and added HasErrors property that checks the count of the errors to evaluate if a record or MyClass object is valid. The validation is using the PriceValidationRule so the logic is reused. However the implementation is almost the same as implementing IDataErrorInfo Interface. I modified your sample so you can take a look. If your requirements do not allow modifying the business object to include other properties it may not be possible to achieve the behavior you describe.
Let me know if this works for you or if you have any other questions.
Thanks,
Slavi
let me try to explain it one more time.
At First, I prefer to use a XamGrid because of performance and features...
The point is, that I don't want to implement the IDEI. That's because there are already some ValidationRules in my company,which we use in many projects. For example to validate the price in many ways.
But there is no way (I know), to use ValidationRules with the fields or row on a XamGrid.So I want to use the ConditionalFormat feature to achieve this.
I've created an own FormatRule, called: ValidationFormatRule.Here, I can specify a style to apply, if the result of the validation rule, set on the ValidationFormatRule, is not valid.
But for the user, it is very unhandy to scroll through 10000 rows, to see, if there are any errors left.
That's why I need an additional column (Name it ErrorColumn), that indicates, there is one or more errors in this row and,the important thing, he can set a filter on this column, so he can see only the rows, which have errors.
The problem I have now is, the ErrorColumn need to know, If there is any error or conditional format on any cell in the current row.Furthermore, the ErrorColumn needs different values, if there are errors or not. Because of the filter function.
In the IDEI scenario, there is a property on the business object, that indicates that (HasDataErrors).
This is the connection I am looking for.
Here is the example, with the additional classes, but the logic on the ErrorColumn is missing!
I am sorry but I do not think I fallow what the ide is any more. I hope this information is helpful:
The HasDataError and the DataError properties are meant to show the information provided by the IDataErrorInfo interface implementation. The CellValuePresenters that are used to represent cell content have the additional logic to populate the DataError with the ValueConstraint error messages. The Record level error can be set when implementing the IDEI interface where user need to decide when to set it and based on what criteria.
If that error column will just contain icon to indicate and error isn't this the same as the already existing functionality of the grid to show error icons in cells with errors/validation rules ?
If the idea is to use a custom icon here is an example how this can be done: http://es.infragistics.com/products/wpf/sample/data-grid/data-error-styling
Thanks,Slavi