Telerik Forums
UI for WPF Forum
6 answers
73 views
Hi,

I am getting an exception whenever I try to resize any column of an empty gridview. Is this a known issue?

Here are the exceptions details

System.ArgumentOutOfRangeException was unhandled
  Message="Index was out of range. Must be non-negative and less than the size of the collection.\r\nParameter name: index"
  Source="mscorlib"
  ParamName="index"
  StackTrace:
       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
       at System.ThrowHelper.ThrowArgumentOutOfRangeException()
       at System.Collections.Generic.List`1.get_Item(Int32 index)
       at Telerik.Windows.Controls.GridViewColumnCollection.get_Item(Int32 index)
       at Telerik.Windows.Controls.GridViewColumnCollection.System.Collections.Generic.IList<Telerik.Windows.Data.IFieldDescriptor>.get_Item(Int32 index)
       at Telerik.Windows.Controls.GridViewColumn.OnColumnResizedByUser(Double horizontalChange)
       at Telerik.Windows.Controls.GridViewColumn.ResizeColumnWidth(Double HorizontalChange, Boolean resizedByUI)
       at Telerik.Windows.Controls.GridView.GridViewHeaderSplitter.GridViewHeaderSplitter_DragDelta(Object sender, DragDeltaEventArgs e)
       at System.Windows.Controls.Primitives.DragDeltaEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
       at System.Windows.Controls.Primitives.Thumb.OnMouseMove(MouseEventArgs e)
       at System.Windows.UIElement.OnMouseMoveThunk(Object sender, MouseEventArgs e)
       at System.Windows.Input.MouseEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
       at System.Windows.Input.InputManager.ProcessStagingArea()
       at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
       at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
       at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
       at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       at System.Windows.Interop.HwndSource.InputFilterMessage(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, Boolean isSingleParameter)
       at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
       at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
       at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
       at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
       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.Threading.Dispatcher.Run()
       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 Admin.Windows.Forms.App.Main() in E:\Abhishek\Projects\Development\Source\Admin\obj\Debug\App.g.cs:line 0
       at System.AppDomain._nExecuteAssembly(Assembly 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.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:

Thanks,
akjoshi
Brandon
Top achievements
Rank 1
 answered on 21 Jan 2009
7 answers
171 views
Hi,

Where can I find more detailed samples of using various features of TreeView control, samples present in demo are not enough.

Regards,
akjoshi
Tihomir Petkov
Telerik team
 answered on 21 Jan 2009
1 answer
104 views

Hi,
I'm running WPF Controls, 2008.3, .NET 3.5 and VS 2008 SP1

When I add the following code into the XAML pane:

        <my:RadTabControl TabStripPlacement="Left" TabOrientation="Vertical"  Align="Left" Height="100" Name="radTabControl1" Width="200" xmlns:my="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation">
            <my:RadTabItem Name="TwitterTab" Header="Twitter">

            </my:RadTabItem>

        </my:RadTabControl>

I get the following error in the designer:

Object reference not set to an instance of an object.
   at Telerik.Windows.Controls.RadTabItem.OnTabOrientationChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) in r:\WPF_Scrum\WPF_Team\Sources\Development\Silverlight\Telerik.Windows.Controls.Navigation\TabControl\RadTabItem.cs:line 767
   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, OperationType operationType)
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyPropertyKey key, Object value)
   at Telerik.Windows.Controls.RadTabItem.set_TabOrientation(Orientation value) in r:\WPF_Scrum\WPF_Team\Sources\Development\Silverlight\Telerik.Windows.Controls.Navigation\TabControl\RadTabItem.cs:line 330
   at Telerik.Windows.Controls.RadTabControl.PrepareContainerForItemOverride(DependencyObject element, Object item) in r:\WPF_Scrum\WPF_Team\Sources\Development\Silverlight\Telerik.Windows.Controls.Navigation\TabControl\RadTabControl.cs:line 1312
   at System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost.PrepareItemContainer(DependencyObject container, Object item)
   at System.Windows.Controls.ItemContainerGenerator.System.Windows.Controls.Primitives.IItemContainerGenerator.PrepareItemContainer(DependencyObject container)
   at System.Windows.Controls.Panel.reGenerateChildren()
   at System.Windows.Controls.Panel.get_InternalChildren()
   at System.Windows.Controls.Panel.get_Children()
   at Telerik.Windows.Controls.Primitives.TabStripPanel.MeasureOverride(Size availableSize) in r:\WPF_Scrum\WPF_Team\Sources\Development\Silverlight\Telerik.Windows.Controls.Navigation\TabControl\TabStripPanel.cs:line 0
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   at System.Windows.Controls.ItemsPresenter.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   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.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
   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.Controls.Control.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.DockPanel.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Decorator.MeasureOverride(Size constraint)
   at System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)
   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)
   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.Controls.Border.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Border.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.DockPanel.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Border.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   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.Controls.Control.MeasureOverride(Size constraint)
   at MS.Internal.WindowControl.DesignTimeWindow.MeasureOverride(Size availableSize)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Designer.SimpleViewManager.DesignerBackground.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Decorator.MeasureOverride(Size constraint)
   at Microsoft.Windows.Design.Interaction.DesignerView.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Designer.Viewport.MeasureOverride(Size availableSize)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   at System.Windows.Controls.ScrollContentPresenter.MeasureOverride(Size constraint)
   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)
   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.Controls.ScrollViewer.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Control.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Interop.HwndSource.SetLayoutSize()
   at System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value)
   at System.Windows.Interop.HwndSource.set_RootVisual(Visual value)
   at MS.Internal.Designer.VSIsolatedDesigner.ViewHolder.Initialize()
   at MS.Internal.Designer.VSIsolatedDesigner.ViewHolder..ctor(UIElement content)
   at MS.Internal.Designer.VSIsolatedDesigner.VSIsolatedView.get_ViewHandle()
   at MS.Internal.Host.Isolation.IsolatedView.get_ViewHandle()
   at MS.Internal.Designer.DesignerPane.LoadDesignerView()

How can I resolve this?

By the way, your code input window doesn't work very well in Chrome.
Boyan
Telerik team
 answered on 19 Jan 2009
2 answers
238 views
Hello,

Is there an event that is raised when a column is resized?  If not, do you have any suggestions about how to get notified whenever a column is resized?

Thanks,

Joel
JP
Top achievements
Rank 1
 answered on 19 Jan 2009
1 answer
120 views
Hi

Can we use rad gauge in web-applications?
Giuseppe
Telerik team
 answered on 19 Jan 2009
1 answer
121 views
I'm using version 1.0.1.0 (Q2 2008 we believe) of the TreeView control. The hierarchy represented in the control is not bindable throughout, so we are forced to manually refresh it from time to time, and we also need to re-select the selected item after a refresh. The code is a bit complicated, but it seems to work well enough. It's called after PlansTreeView.Items.Refresh().

private void ReselectTreeViewSelection() 
    if (PlansTreeView.SelectedItem == null
        return
 
    var initialSelection = PlansTreeView.SelectedItem; 
 
    // find the master for the current selection 
    var selectedMaster = initialSelection as MasterRetailPlan; 
    if (selectedMaster == null
    { 
        var selectedTier = initialSelection as TierRetailPlan; 
        if (selectedTier != null
            selectedMaster = selectedTier.Master; 
        else 
        { 
            var selectedPub = (PublicationRetailPlan)initialSelection; 
            selectedMaster = selectedPub.Tier.Master; 
        } 
    } 
 
    // find the matching master whether placeholder or otherwise 
    var master = PlansTreeView.Items.Cast<MasterRetailPlan>().Single(x => x.ToString() == selectedMaster.Name || x.Name == selectedMaster.Name); 
    _masterContainer = PlansTreeView.ContainerFromItemRecursive(master); 
 
    // if the selected item was a master, then we're done 
    if (selectedMaster == initialSelection) 
        _masterContainer.IsSelected = true
 
    else 
        // we know we haven't found the selected item yet, so we expand the master 
        // and dig in to the tiers as soon as the ItemContainers for the tiers have been created 
        // we do this because the containers won't be created until needed, i.e. until the parent is expanded 
        _masterContainer.ItemContainerGenerator.StatusChanged += MasterContainerGenerator_StatusChanged; 
 
    _masterContainer.IsExpanded = true
 
void MasterContainerGenerator_StatusChanged(object sender, EventArgs e) 
    // don't do anything until the containers are generated 
    var generator = sender as ItemContainerGenerator; 
    if (generator.Status != GeneratorStatus.ContainersGenerated) 
        return
 
    // find the tier for the current selection 
    var initialSelection = PlansTreeView.SelectedItem; 
    var selectedTier = initialSelection as TierRetailPlan; 
    if (selectedTier == null
    { 
        var selectedPub = initialSelection as PublicationRetailPlan; 
        if (selectedPub != null
            selectedTier = selectedPub.Tier; 
    } 
 
    // find the matching tier 
    var tier = _masterContainer.Items.Cast<TierRetailPlan>().Single(x => x.Name == selectedTier.Name); 
    _tierContainer = PlansTreeView.ContainerFromItemRecursive(tier); 
 
    // if the selected item was the tier, then we're done 
    if (selectedTier == initialSelection) 
        _tierContainer.IsSelected = true
 
    else 
        // we know the tier wasn't the selected item, so it must be a pub 
        // we expand the tier and examine the pubs as soon as their ItemContainers have been created 
        _tierContainer.ItemContainerGenerator.StatusChanged += TierContainerGenerator_StatusChanged; 
 
    _tierContainer.IsExpanded = true
 
void TierContainerGenerator_StatusChanged(object sender, EventArgs e) 
    // don't do anything until Generated 
    var generator = sender as ItemContainerGenerator; 
    if (generator.Status != GeneratorStatus.ContainersGenerated) 
        return
 
    // we know if this fired, then the selected item was a pub 
    var selectedPub = (PublicationRetailPlan)PlansTreeView.SelectedItem; 
 
    var pub = _tierContainer.Items.Cast<PublicationRetailPlan>().Single(x => x.Name == selectedPub.Name); 
    var pubContainer = PlansTreeView.ContainerFromItemRecursive(pub); 
    pubContainer.IsSelected = true

We also need to have some of the nodes sorted, and that code works well and seems simple enough:

private void PlansTreeView_Expanded(object sender, RadRoutedEventArgs e) 
    var item = (RadTreeViewItem)e.OriginalSource; 
    var tier = (item.DataContext as TierRetailPlan); 
    if (tier == null
        return
 
    if (item.Items.SortDescriptions.Count == 0) 
        item.Items.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending)); 

The trouble is that once a node is sorted, I can no longer refresh it (regardless of my Reselection - PlansTreeView.Items.Refresh() just does nothing). Is there something going on in the control that disables refreshing once I have it sorted? Or are there other approaches I should be taking towards refreshing the tree?







Tihomir Petkov
Telerik team
 answered on 16 Jan 2009
1 answer
130 views
Hello,
I need export radGrad to Excel file.

This is a code:

gv.ExportSettings.FileName = getFileName();
gv.ExportSettings.ExportOnlyData = true;
gv.ExportSettings.IgnorePaging = true;
gv.ExportSettings.OpenInNewWindow = true;
gv.MasterTableView.Style["text-align"] = "left";
gv.MasterTableView.ExportToExcel();

 

The problem: text-align of data in cells in excel file is different! One column aligned left, other - right. But in radGrid all aligned left.
I tried set style gv.MasterTableView.Style["text-align"] = "left"; but this doesn't solve my problem.
How can I set style for table cells???

P.S.
I found on the forum screenshot of excel table with a similar problem (last column aligned left and other right):
http://www.telerik.com/community/forums/aspnet-ajax/general-discussions/export-to-excel-number-problems.aspx

Thanks a lot.

Daniel
Telerik team
 answered on 16 Jan 2009
1 answer
49 views
Hi guys,

Great work on the TreeView. Would love for you to implement a CheckChildNodes proprty like the ASP.NET TreeView has.

Cheers

Justin Taylor
JTango
Top achievements
Rank 1
 answered on 14 Jan 2009
1 answer
72 views
Hi


Given that my dataContext is bound to a singluar object (Client, which is working fine) what is the binding syntaxt to bind the Client's Orders to the GridView

Thanks


P
Paul Gallen
Top achievements
Rank 1
 answered on 13 Jan 2009
5 answers
132 views
Hi

I'm using the GridView for WPF, with Visual C# Express.
And when I am adding a gridview to my page, I cannot see it in design mode, although it is working fine in run mode

The error message I got is

'Telerik.Windows.Controls.GridView;;;Component\Themes\GridView\Telerik/TableView.xaml' value cannot be assigned to property 'Source' of object 'System.Windows.ResourceDictionary'. Object reference not set to an instance of an object.  Error at object 'System.Windows.ResourceDictionary'.

The XAML I am using is as follows

<Grid Loaded="Grid_Loaded">
        <Grid.Resources>
            <Style TargetType="{x:Type telerik:GridViewCell}">
                <Setter Property="BorderThickness" Value="2" />
            </Style>
        </Grid.Resources>
        <telerik:RadGridView Name="radGridViewRedErrorBorder" ItemsSource="{Binding}" >
            <telerik:RadGridView.Resources>
            </telerik:RadGridView.Resources>
        </telerik:RadGridView>
    </Grid>
Paul Gallen
Top achievements
Rank 1
 answered on 12 Jan 2009
Narrow your results
Selected tags
Tags
+113 more
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
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
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?