Telerik Forums
UI for WPF Forum
3 answers
182 views
I update data in GridView very quickly. Last updated item have a state as if mouse over it.

So when I select item, it is high probability to select wrong item (item, which was last updated), instead of item mouse actually over.

 You can reproduce this problem in demo: GridView -> Real-time Update.

What should I do to solve this problem?


Dimitrina
Telerik team
 answered on 16 Dec 2013
3 answers
711 views
Hi,

I'm having trouble with the logic in my code where the PreviewKeyDown Event is firing multiple times before the KeyUp Event is triggered.

For example:
I press two keys very quickly but NOT at the exact same time. However, my KeyUp event has some logic that needs to be completed in time before the next PreviewKeyDown should be fired.

Is there a way that I can prevent a PreviewKeyDown event from firing again until the respective KeyUp event has finished?
I suppose one solution would be to programmatically Add and Remove the events. I just wondered if there was a flag I can use to check instead.


You can see from my Debug output below that the PreviewKeyDown is firing twice before the KeyUp events have finished:
key press: N
Update Modification - PreviewKeyDown Event (Is Selection Empty: False)
key press: A
Update Modification - PreviewKeyDown Event (Is Selection Empty: False)
KeyUp Event Fired
KeyUp Event Fired


Many thanks,

Rob
Petya
Telerik team
 answered on 16 Dec 2013
3 answers
648 views
Hello, I have a RadGridView that has potentially thousands of rows and 30-50 columns. The vertical scrolling works great even with 150,000+ rows. However, the horizontal scrolling is very slow and jerky. Also the scroll bar starts off about half the width of the GridView and then shrinks as you scroll to the right. This makes the cursor move off the scroll bar. I've tried changing a few settings, but so far nothing has made any difference.

I am using auto generated columns because I don't know until run-time what columns will be in the grid.

Thanks,
Curtis
Dimitrina
Telerik team
 answered on 16 Dec 2013
4 answers
173 views
Hello,

i'm currently using the ScheduleView for showing appointments on a touchscreen. I changed the theme of the ScheduleView so i could open the EditAppointmentDialog with a single tap. The first problem is that the EditAppointmentDialog only shows when i click on a certain area of the appointment. It seems like the frame of the appointment where it reacts to the tap is slightly moved down. I attached a screen with the appointment - the black border illustrates where i need to tap to open the dialog.
This problem only occurs only on the touchscreen though, if i run the application on a normal screen and select the appointments with a mouse it shows no abnormal behavior.
When i try to select the rows of the calendar or press buttons the click is recognized at the right location, so the probelm only occurs when trying to open the EditAppointmentDialog. This makes me think it is a problem with the control and not an issue with drivers or the touchscreen.

I also defined a custom ViewDefinition for a work week, from Monday-Saturday, which leads to my second problem. When i try to pinch within this ViewDefinition i get an InvalidOperationException with the Message 'TimeRulerMonthViewGroupItem' TargetType does not match type of element 'TimeRulerGroupItem'. I found a similiar issue in this thread: http://www.telerik.com/community/forums/wpf/scheduleview/crash-while-pinch-to-zoom.aspx - but the workaround that was posted there didn't work for me.

The exception details:

System.InvalidOperationException was unhandled
  HResult=-2146233079
  Message='TimeRulerMonthViewGroupItem' TargetType does not match type of element 'TimeRulerGroupItem'.
  Source=PresentationFramework
  StackTrace:
       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.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
       at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
       at Telerik.Windows.Controls.ScheduleView.Extensions.SetStyleWithType(FrameworkElement element, Style style) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Helpers\Extensions.cs:line 33
       at Telerik.Windows.Controls.ScheduleViewBase.EnsureElementStyle(FrameworkElement element, Style newStyle) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Common.cs:line 784
       at Telerik.Windows.Controls.ScheduleViewBase.ApplyTickItemStyle(FrameworkElement container, Object item) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Common.cs:line 1291
       at Telerik.Windows.Controls.TimeRulerPanel.PrepareItem(TimeRulerItemBase item) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\TimeRulerPanel.cs:line 127
       at Telerik.Windows.Controls.RecycleHelper`1.PrepareItem(Int32 index) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Helpers\RecycleHelper.cs:line 148
       at Telerik.Windows.Controls.RecycleHelper`1.PrepareItems(IValuesContainer indexTree, DateTime startDate, DateTime endDate) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Helpers\RecycleHelper.cs:line 85
       at Telerik.Windows.Controls.TimeRulerPanel.PrepareItems() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\TimeRulerPanel.cs:line 344
       at Telerik.Windows.Controls.TimeRulerPanel.MeasureOverride(Size availableSize) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\TimeRulerPanel.cs:line 215
       at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
       at System.Windows.UIElement.Measure(Size availableSize)
       at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
       at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged)
       at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
       at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
       at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
       at System.Windows.UIElement.Measure(Size availableSize)
       at System.Windows.ContextLayoutManager.UpdateLayout()
       at Telerik.Windows.Media.Imaging.ExportHelper.GetBitmapSource(FrameworkElement element, Double dpiX, Double dpiY) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\ExportExtensions\ExportHelper.cs:line 94
       at Telerik.Windows.Media.Imaging.ExportHelper.GetElementImage(FrameworkElement element) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\ExportExtensions\ExportHelper.cs:line 70
       at Telerik.Windows.Controls.TransitionControl.TransitionPresenter.PrepareAnimation() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\TransitionControl\TransitionPresenter.cs:line 301
       at Telerik.Windows.Controls.RadTransitionControl.PrepareAnimation() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\TransitionControl\RadTransitionControl.cs:line 184
       at Telerik.Windows.Controls.RadScheduleView.OnActiveViewDefinitionChanged(ViewDefinitionBase oldValue, ViewDefinitionBase newValue) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\RadScheduleView.cs:line 281
       at Telerik.Windows.Controls.ScheduleViewBase.OnActiveViewDefinitionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Common.cs:line 2698
       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.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
       at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
       at Telerik.Windows.Controls.ScheduleViewBase.set_ActiveViewDefinition(ViewDefinitionBase value) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.cs:line 1441
       at Telerik.Windows.Controls.RadScheduleView.SetView(ViewDefinitionBase resultView, Object dateTime) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\RadScheduleView.cs:line 198
       at Telerik.Windows.Controls.RadScheduleView.SelectView[T](Object dateTime) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\RadScheduleView.cs:line 180
       at Telerik.Windows.Controls.ScheduleViewBase.OnSetMonthViewModeExecuted(Object sender, ExecutedRoutedEventArgs e) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Commands.cs:line 301
       at System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
       at System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
       at System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
       at System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
       at System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
       at Telerik.Windows.Controls.ScheduleView.ScheduleViewTouchableElement.SemanticZoomOut(Point originalPoint) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Touch\ScheduleViewTouchableElement.cs:line 215
       at Telerik.Windows.Controls.ScheduleView.ScheduleViewTouchableElement.PinchFinished(PinchFinishedArguments args) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Touch\ScheduleViewTouchableElement.cs:line 86
       at Telerik.Windows.Input.Touch.GestureHandlers.PinchToZoomHandler.PinchFinished() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\GestureHandlers\PinchToZoomHandler.cs:line 77
       at Telerik.Windows.Input.Touch.TouchHandler.RegisterPinchFinish() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\TouchHandlers\TouchHandler.cs:line 356
       at Telerik.Windows.Input.Touch.TouchHandler.RegisterTouchMove(TouchHandlerArgs args) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\TouchHandlers\TouchHandler.cs:line 162
       at Telerik.Windows.Input.Touch.TouchHandlersController.RegisterTouchMove(Point point, TouchPoint[] touchPoints, Boolean& handled) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\TouchHandlersController.cs:line 108
       at Telerik.Windows.Input.Touch.TouchHandlersController.Owner_TouchMove(Object sender, TouchEventArgs e) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\Input\Touch\TouchHandlersController_WPF.cs:line 217
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
       at System.Windows.Input.InputManager.ProcessStagingArea()
       at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
       at System.Windows.Input.TouchDevice.ReportMove()
       at System.Windows.Input.StylusLogic.PromoteMainMoveToTouch(StylusDevice stylusDevice, StagingAreaInputItem stagingItem)
       at System.Windows.Input.StylusLogic.PostProcessInput(Object sender, ProcessInputEventArgs e)
       at System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(ProcessInputEventHandler postProcessInput, ProcessInputEventArgs processInputEventArgs)
       at System.Windows.Input.InputManager.ProcessStagingArea()
       at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
       at System.Windows.Input.StylusLogic.InputManagerProcessInput(Object oInput)
       at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
       at System.Windows.Threading.DispatcherOperation.InvokeImpl()
       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.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 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, 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.Application.RunInternal(Window window)
       at System.Windows.Application.Run()
       at InformationTerminal.App.Main() in C:\Users\p50054\Projekte\InfoTerminalGUIPrototype\x64\Debug\App.g.cs:line 0
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       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()
  InnerException:


Kind regards,
Manuel
Manuel
Top achievements
Rank 1
 answered on 16 Dec 2013
1 answer
92 views
I have a situation where I need to base the grid on an observable collection and I want to auto generate the columns based on the values of the Period property of the collection. For example, given the following code I want the column headers to display 2013, 2014, 2015, etc.

Imports System.Collections.ObjectModel
 
Class MainWindow
 
    Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
        Dim colSubjects As New ObservableCollection(Of Subject)
 
        colSubjects.Add(New Subject With {.Period = 2013, .Subject = "English", .Average = 1.65})
        colSubjects.Add(New Subject With {.Period = 2014, .Subject = "English", .Average = 18.6})
        colSubjects.Add(New Subject With {.Period = 2015, .Subject = "English", .Average = 15.4})
        colSubjects.Add(New Subject With {.Period = 2016, .Subject = "English", .Average = 8.2})
        colSubjects.Add(New Subject With {.Period = 2017, .Subject = "English", .Average = 9.72})
        colSubjects.Add(New Subject With {.Period = 2018, .Subject = "English", .Average = 8.55})
 
        colSubjects.Add(New Subject With {.Period = 2013, .Subject = "Mathematics", .Average = 1.65})
        colSubjects.Add(New Subject With {.Period = 2014, .Subject = "Mathematics", .Average = 18.6})
        colSubjects.Add(New Subject With {.Period = 2015, .Subject = "Mathematics", .Average = 15.4})
        colSubjects.Add(New Subject With {.Period = 2016, .Subject = "Mathematics", .Average = 8.2})
        colSubjects.Add(New Subject With {.Period = 2017, .Subject = "Mathematics", .Average = 9.72})
        colSubjects.Add(New Subject With {.Period = 2018, .Subject = "Mathematics", .Average = 8.55})
 
        colSubjects.Add(New Subject With {.Period = 2013, .Subject = "Biology", .Average = 1.65})
        colSubjects.Add(New Subject With {.Period = 2014, .Subject = "Biology", .Average = 18.6})
        colSubjects.Add(New Subject With {.Period = 2015, .Subject = "Biology", .Average = 15.4})
        colSubjects.Add(New Subject With {.Period = 2016, .Subject = "Biology", .Average = 8.2})
        colSubjects.Add(New Subject With {.Period = 2017, .Subject = "Biology", .Average = 9.72})
        colSubjects.Add(New Subject With {.Period = 2018, .Subject = "Biology", .Average = 8.55})
 
        gvRigs.ItemsSource = colSubjects
    End Sub
 
    Private Class Subject
        Public Subject As String
        Public Period As Integer
        Public Average As Single
    End Class
End Class

Does anyone have any suggestions?
Dimitrina
Telerik team
 answered on 14 Dec 2013
3 answers
102 views
Hi,

I am new to Rad Controls/Diagram and would like some help if possible.

What I would like to do is cancel a connection between two items within the diagram based on the target's type.

Is this possible, if so, how would I go about it?

Thanks
Paul.
Pavel R. Pavlov
Telerik team
 answered on 14 Dec 2013
3 answers
166 views
I'm trying to add a shape from code adding an element to the graphsource property.
Everything works as expected: the new shape is added to the diagram at position (0, 0) unless I set a different value.

Is it possible to compute a "meaningful" position using a layout algorithm?
Of course I can add the shape and then trigger a diagram layout, but this will affect the position of every shape...
Pavel R. Pavlov
Telerik team
 answered on 14 Dec 2013
3 answers
281 views

Hi Telerik,

I have a few questions regarding the usage of the RadDocument.  According to my scenario I prepare different Documents in Designer (using RadRichTextBox) with Placeholders,  which are implemented with the InlineUIContainers and child TextBlock element,  and then this serialize document to HTML and retain in the Storage.
In the various Application background processes we use the prepared Doument "template" for generating HTML documents,  by replacing the Placeholders with the real-time data.
To do it, we 
try to deserialize the RadDocument from the HTML and then use RadDocument DOM model for easier and safer Placeholder replacement operation.  The only way we found to do it on Application Server is to use methods  HtmlFormatProvider.Import, HtmlFormatProvider.Export. BUT they are not designed to be used in a such way as they expect to be run only in STA thread, so we got an exception:

InvalidOperationException with message "The calling thread must be STA, because many UI components require this."

Creating a dedicated STA thread for processing each documents works only under non-stressful conditions, and definitely failed on contrary with the confusing exception:

System.ComponentModel.Win32Exception (0x80004005): The operation completed successfully

Could you please suggest any way to overcome our problem, or suggest another approach for working with RadDocuments in background processes?

 

Thanks

Petya
Telerik team
 answered on 14 Dec 2013
1 answer
118 views
HI,

I use this XMAL :
<telerik:TimelineViewDefinition
  GroupTickLength="1m"
  StretchAppointments="False"
  StretchGroupHeaders="True"
  MinTimeRulerExtent="1"/>

but the appointments will be stretched... (see attachment)
I use my own AppointmentItemContentTemplate with a TextBlock and a ProgressBar and set the MinAppointmentHeight="40"

How yould I fix this issue?

Thx
Kalin
Telerik team
 answered on 14 Dec 2013
1 answer
88 views

Hi,


For my purposes, I am using RadRichTextBox instead of RadTextBox in order to take advantage of the spell check, where incorrect words get underlined.



I need to create something similar to an EmptyContent property in RadMaskedTextInput control.  Can someone suggest how to such behavior to the RadRichTextBox?



Thank you in advance,



Michael

Petya
Telerik team
 answered on 13 Dec 2013
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?