I have an issue using the RadialMenu with the GridView.
If I use the following code :
<
telerik:RadGridView
x:Name
=
"GridView"
adhoc:ColumnStackPanel.Column
=
"2"
AutoGenerateColumns
=
"False"
MaxHeight
=
"300"
>
<
telerik:RadGridView.Resources
>
<
Style
TargetType
=
"telerik:GridViewRow"
BasedOn
=
"{StaticResource {x:Type telerik:GridViewRow}}"
>
<
Setter
Property
=
"telerik:RadRadialMenu.RadialContextMenu"
>
<
Setter.Value
>
<
telerik:RadRadialMenu ShowEventName="GotFocus" HideEventName="LostFocus"
StaysOpenOnShow
=
"True"
PopupPlacement
=
"MousePoint"
>
<
telerik:RadRadialMenuItem
Header
=
"Hello"
/>
<
telerik:RadRadialMenuItem
Header
=
"World"
/>
</
telerik:RadRadialMenu
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
telerik:RadGridView.Resources
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Data1}"
IsReadOnly
=
"True"
Header
=
"Data1"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
I will have a NullReferenceException with the following stacktrace if I scroll down and backward two time :
at Telerik.Windows.Controls.RadRadialMenu.OnRadialContextMenuChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
at System.Windows.StyleHelper.InvalidateContainerDependents(DependencyObject container, FrugalStructList`1& exclusionContainerDependents, FrugalStructList`1& oldContainerDependents, FrugalStructList`1& newContainerDependents)
at System.Windows.StyleHelper.DoStyleInvalidations(FrameworkElement fe, FrameworkContentElement fce, Style oldStyle, Style newStyle)
at System.Windows.StyleHelper.UpdateStyleCache(FrameworkElement fe, FrameworkContentElement fce, Style oldStyle, Style newStyle, Style& styleCache)
at System.Windows.FrameworkElement.OnStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
at System.Windows.FrameworkElement.UpdateStyleProperty()
at System.Windows.TreeWalkHelper.InvalidateOnTreeChange(FrameworkElement fe, FrameworkContentElement fce, DependencyObject parent, Boolean isAddOperation)
at System.Windows.FrameworkElement.OnVisualParentChanged(DependencyObject oldParent)
at System.Windows.Media.Visual.FireOnVisualParentChanged(DependencyObject oldParent)
at System.Windows.Media.Visual.RemoveVisualChild(Visual child)
at System.Windows.Media.VisualCollection.DisconnectChild(Int32 index)
at System.Windows.Media.VisualCollection.InternalRemove(Visual visual)
at System.Windows.Controls.UIElementCollection.RemoveInternal(UIElement element)
at System.Windows.Controls.UIElementCollection.Remove(UIElement element)
at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.NestedLayoutStrategy.DisconnectRecycledContainers()
at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.NestedLayoutStrategy.MeasureOverride(Size constraint)
at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
at System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at Adhoc.ToolsWPF.Sample.App.Main()
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
This is obviously caused by virtualisation.
I tried to set the RadialMenu as ContextMenu directly in the RadGridView managing the ItemsSource of the RadialMenu with the selecteditem of the RadGridView but I have another issue where the RadialMenu will show and hide if the show event occure while the selected row change.
Hi,
the scrollbar doesn't appear in the filtercontrol whan I have a lot of distinct items in a gridview.
I use the Windows8Touch theme without customization.
Any idea ?
Thanks
Hello,
I have a very simple piece of code to bind my RadMenu control to an ObservableList of Menus.
My xaml looks like this:
<telerik:RadMenu Name:"MainMenu" ItemsSource="{Binding Menus}"/>
This works fine. In order to display something more interesting, I can add:
<telerik:RadMenu Name:"MainMenu" ItemsSource="{Binding Menus}" DisplayMemberPath="Name" />
And I get the Name property of my Menus displayed.
Now I would like to get a step further as my Menu class has a SubMenus property so I try to play with RadMenuItem styling and this is where I get lost.
If I write simple code like this, that according to me should do the same as the DisplayMemberPath :
<telerik:RadMenu Name:"MainMenu" ItemsSource="{Binding Menus}" >
<telerik:RadMenu.Resources>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Header" Value="{Binding Name}"/>
</Style>
</telerik:RadMenu.Resources>
</telerik:RadMenu>
Nothing is displayed on my window when running the code.
I have checked everything, I can see in my view that the Menu is created and the items inside, etc... but the RadMenus don't display.
As soon as I comment out the Style, menus are displayed. As everything else is straightforward in my code, I think I am missing something obvious but I can't find it. There is no error in debug for binding issues or else.
I use Telerik 2017.1.22.45.
Thanks for your feedback.
Hello,
I'm using telerik control tools for WPF UI ver: 2015.1.0401.45
I have noticed that radlistbox has a huge memory leak. On replacing radlistbox with Microsoft listbox, memory leak does not occur.
I'm attaching the demo project (replace extension of file from .jpg to .zip).
This project demonstrates the problem of memory leak. Actually the memory leak occurs on data binding
I've remarked the Microsoft listbox in xaml, so to prove my claim, just use Microsoft listbox instead of radlistbox and see the difference in memory usage of the processes.
Do you have a patch to fix this issue ?
Thank you,
Alex