Hi,
I have a tree structure here with currently 240,000 nodes. The nodes inisde the view model are placed in RadObservableCollection's so that Suspend/ResumeNotiffications is used during initialization. All nodes are initialized in expanded state. The first scrolling tests were horrible. But then I discovered AutoExpandItems="True" which solved the scrolling issue.
But now I have a problem when the root RadObservableCollection of the tree is cleared. The profiled stack trace can be seen it the attachment. The UI thread of the application blocks for 40 seconds, because the TreeListView performs a sort, collapse and reset view on each (dead) node.
Currently clearing the root node collection costs 8x more time than setting up (asynchronous) and displaying the whole structure (reset). Can I do anything about it?
I get following exception when I try to open some PDF document in RadPdfViewer.
The file can be properly open in AdobeReader.
System.Windows.Media.Imaging.WriteableBitmap..ctor is called with size 7016 x 20872 pixels
Exception message:
System.Runtime.InteropServices.COMException: 'MILERR_WIN32ERROR (Wyjątek od HRESULT: 0x88980003)'
with callstack:
w System.Windows.Media.Imaging.WriteableBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat, BitmapPalette palette)
w Telerik.Windows.Media.Imaging.RadBitmap..ctor(Int32 width, Int32 height, Int32[] pixels)
w Telerik.Windows.Documents.Fixed.UI.UIElementsHelper.CreateImageSource(RadFixedPage page, ImageResourceKey key, ImageSource source)
w Telerik.Windows.Documents.Fixed.UI.UIElementsHelper.ImageLoader_WorkCompleted(Object sender, WorkCompletedEventArgs e)
w Telerik.Windows.Documents.Utilities.ResourceLoader.OnWorkCompleted(WorkCompletedEventArgs args)
w Telerik.Windows.Documents.Utilities.ResourceLoader.Worker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
w System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
w System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
w System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
w System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
w System.Windows.Threading.DispatcherOperation.InvokeImpl()
w System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
w MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
w System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
w System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
w System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
w MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
w System.Windows.Threading.DispatcherOperation.Invoke()
w System.Windows.Threading.Dispatcher.ProcessQueue()
w System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
w MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
w MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
w System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
w System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
w System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
w MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
w MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
w System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
w System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
w System.Windows.Application.RunDispatcher(Object ignore)
w System.Windows.Application.RunInternal(Window window)
w System.Windows.Application.Run(Window window)
w System.Windows.Application.Run()
I have a grid bound to a list of a view model class I will call "A". Class A implements INotifyDataErrorInfo. As each property of A is set, the value of the changed property is validated, the set of errors is updated, and the ErrorChanged event is fired for that property--this is a pretty typical class that implements INotifyDataErrorInfo.
When the user clicks the New Item Row, I set some initial property values in the AddingNewDataItem event. Then when the new data row displays before the user has begun to type in the first field, a few fields are already highlighted with errors. After adding some logging, I found that the data grid is making a copy of the object I create in the AddingNewDataItem handler. Each property in this copy is set which causes validation to fire off, and some fields show errors when initially shown to the user. I don't want this. I only want to show errors after the user edits the field or attempts to commit a row with errors.
I also noticed the grid control calls HasErrors() on the original source object made in the event handler, not the copy it makes, which seems odd to me.
Is this the expected behavior? I want to display a newly inserted row with no errors and some custom initial values, but that copy the grid makes sorta ruins the process. How do I work around this?
Below is my log. It begins with the hash code of the ViewModel
// NOTE: All this occurs on insert, no user edits// These first validation calls are in the AddingNewDataItem event when I initialize some properties.57073170: ValidateProperty JobId, 0 errors.57073170: ValidateProperty Quantity, 0 errors.57073170: ValidateProperty State, 0 errors.57073170: ValidateProperty Part, 0 errors.57073170: ValidateProperty PartId, 1 errors.57073170: ClearErrors() //clear errors so that the fields don't indicate errors until the user sets them or the row is validated// Done with AddingNewDataItem event handler in my code57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: GetErrors(State) returned empty list57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: GetErrors(State) returned empty list57073170: GetErrors(PartNumber) returned empty list57073170: GetErrors(Quantity) returned empty list57073170: GetErrors(Length) returned empty list57073170: GetErrors(ComponentType) returned empty list57073170: GetErrors(Label) returned empty list57073170: GetErrors(ElevationId) returned empty list57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: HasErrors() returned False//NOTE: looks like new object is now created by RadGridView after this point?13218022: ValidateProperty PartId, 1 errors.13218022: ValidateProperty PartNumber, 0 errors.13218022: ValidateProperty Description, 0 errors.13218022: ValidateProperty Quantity, 0 errors.13218022: ValidateProperty ComponentType, 0 errors.13218022: ValidateProperty Label, 1 errors. // This error shows in the UI clicking Add Item Row13218022: ValidateProperty ElevationId, 1 errors. // This error shows in the UI after clicking Add Item Row13218022: ValidateProperty JobId, 0 errors.13218022: ValidateProperty KeepAlways, 0 errors.13218022: ValidateProperty Length, 0 errors.13218022: ValidateProperty Part, 0 errors.13218022: ValidateProperty PartId, 1 errors.13218022: ValidateProperty Id, 0 errors.13218022: ValidateProperty State, 0 errors.// HasErrors is called on the original and not the new object...57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: GetErrors(PartNumber) returned empty list57073170: HasErrors() returned False57073170: HasErrors() returned False57073170: GetErrors(PartNumber) returned empty list57073170: GetErrors(PartNumber) returned empty list57073170: GetErrors(PartNumber) returned empty list


Hi,
On Release R1.2017 you said that the search panel was added on Treelist for Green and Office2016 themes.
Search panel is present in the template for Green and Office2016 themes.
I couldn't find it on OfficeBlack theme. Is it not implemented yet?
Thank you
Hi all,
I am a new in WPF. And, I haven't found the answer after searching the forum.
How can I find the child windows because only get WpfApplication.MainWindow and WpfApplication.Windows.Count=1 sometimes?
Then, I try to call some refresh or update functions as follows
wpfApplication.MainWindow.VisualTree.Refresh();
wpfApplication.MainWindow.VisualTree.Root.Refresh();
wpfApplication.MainWindow.UpdateInterHostLinks();
wpfApplication.MainWindow.ContentWindow.RefreshChildren();
wpfApplication.MainWindow.RefreshVisualTrees();
wpfApplication.MainWindow.ContentWindow.Update();
wpfApplication.MainWindow.Find.RefreshRoot();
However, it doesn't work. How can I get the child window every time? Many thanksHi There,
I have problem with Auto sorting and filtering.
The situation is,
When I copy and paste the data to grid.
the data is automatically sorted (or filtered) with other data that was already sorting or filtering.
I'd like the grid does not sort (or filter) the data that was copied and pasted.
do you have any solutions?
Please answer it.
Thank you!
