Hi there,
*** EDIT *** Normal 0 21 false false false IS X-NONE X-NONE MicrosoftInternetExplorer4
It seems both the interface are supported ... the problem is that notify on the field itself makes the UltraGrid repaint itself ( correct behaviour ) but error does not force the UltraGrid to RE-PAINT the cells which are related to the error in the Grid, that's the problem! The UltraGrid needs to support this!
*** EDIT ends ***
I'm running into a really weird error in the UltraGrid, possibly a bug ( using 2010 latest edition )
Does the UltraGrid not support the INotify error interface ? I'm using CSLA objects, databound against the UltraGrid ... and when I'm giving notification **between** levels ( multiple, hierarchy ) I have to HOOVER over the field for the ErrorProvider to be visible. So it looks like a paint-issue or not supporting the INotify interface. The ErrorProvder works fine if just using it on the level being worked inside, but not notifying other levels to put ErrorProvider inside their cells!
I would need support similar to this, where you support the IDataError interface, but only for the INotify interface:e.Layout.Override.SupportDataErrorInfo = Infragistics.Win.UltraWinGrid.SupportDataErrorInfo.RowsAndCells;e.Layout.Override.SupportNotifyErrorInfo = Infragistics.Win.UltraWinGrid.SupportDataErrorInfo.RowsAndCells; <--- this is needed!Please reply ASAP, we're having major issues with this problem
rgd,EE
Hi,
I'm not familiar with any INotify interface. Are you referring to INotifyPropertyChanged?
If so, then the grid does not support this, nor does it need to. The grid support IBindingList, and the BindingManager in DotNet takes care of the rest. If your data objects support INotifyPropertyChanged, then I think what happens is that the BindingSource or the BindingManager handle these notifications and translate them in to IBindingList notifications to bound controls. So the INotifyPropertyChange doesn't deal directly with the grid.
Anyway, I'm kinda lost in your post. What do errors have to do with any of this? There's nothing on IBindingList to notify a bound control about data errors.
I have to HOOVER over the field for the ErrorProvider to be visible. So it looks like a paint-issue or not supporting the INotify interface. The error has been put on the field, but I have to HOOVER over it for it to become visible.-This is the reason why:It seems both the interface are supported ... the problem is that notify on the field itself makes the UltraGrid repaint itself ( correct behaviour ) but error does not force the UltraGrid to RE-PAINT the cells which are related to the error in the Grid, that's the problem!The UltraGrid needs to support this!
I'm still confused about what we are talking about here. What is this INotify interface? I cannot find any information on this interface and I have never heard of it. Perhaps this is something specific to the environment you are using?
What exactly is changing here that the grid is not responding to? You are talking about a change to the error - does changing the error fire off some kind of notification via IDataErrorInfo? I don't think IDataErrorInfo has any method to send notifications of error changes - I'm pretty sure that an error occurs when the value of a cell changes, and so the grid and other bound controls are relying on the IBindingList notifications to refresh the cells.
You may very well be right on this issue ... I'm going deep into the issue on Monday, I'll let you know the results :)
Thanx Mike,EE.
eiki666 said:Why do I need to hoover over the field to make the UltraGrid repaint the field with the errorProvider ?
Obviously, you should not have to hover the mouse over the cell to get it to show the error icon. Does the error condition exist at the time that the ListChanged event is raised?Who is applying the error? Is it set by your code, or is this error automatically generated by the CSLA objects somehow?
My guess is that the CSLA object is firing ListChanged before the error condition has been applied and therefore the grid is updating the cell with the new value and checking the error condition and there isn't one. Then the error condition is being set later, but the grid has no way of knowing that this happened, since it is not getting another ListChanged notification.
When you mouse over the cell and the cell repaints, it once again queries the IDataErrorInfo interface and now there is an error, so it displays it.
If I am correct, then this is a bug in the data objects you are using.
I don't know what the UltraGrid is expecting. CSLA raises the PropertyChanged event, as required by standard data binding, and at the collection level the BindingList<T> collection raises the ListChanged event - that's standard .NET behavior.Why do I need to hoover over the field to make the UltraGrid repaint the field with the errorProvider ?
04 - Hoovering with mouse over the parent to get the error.png
03 - Invalid data but no ErrorProvider is visible in parent.png