Telerik Forums
UI for WPF Forum
9 answers
172 views
Hello,
I am trying to call the following code during the Loaded event and it does not work:

Carousel.CarouselItem item = (Carousel.CarouselItem)Scenes.Children[3]; 
Scenes.BringItemIntoView(item, true); 

I have similar code being called for the MouseDown event and it works fine. I know that I can call the .MoveBy method, but I'd like to move to a particular item in the list. Please not that I am using a CarouselPanel with custom UserControl as the child nodes.
Scott
Top achievements
Rank 1
 answered on 21 Jul 2010
2 answers
335 views
How can we load an image from SQL database (image stored as byte array) in image colum of gridview.
the grid binding is done through the .net datatable. Is it possible in this manner? if it is possible can i get a code sample...

thanx in advance...

expecting your valuable reply...

Regards
Abhijith
Ahmet Özgür
Top achievements
Rank 1
 answered on 21 Jul 2010
4 answers
440 views
hi,
i tried to add a new row in a editing gridview,
when I click on the InsertRow, it becomes an edit row
and I can edit.
but when I go out the row, it disappears from the gridview,
it remains in the ChangeSet object, and after SubmitChanges it added to the data.
I want to see the new row immediately after insertion, not just after the SubmitChanges function.
i'd love to see an example where it works
thanks.
Ahmet Özgür
Top achievements
Rank 1
 answered on 21 Jul 2010
1 answer
124 views
Hello,

I am trying to adjust the RadCarousel in such a manner, that everytime the ItemsSource property of the carousel changes, it would run the animation that usually starts when items are added statically in XAML. I've tried several variations of MoveBy, PageLeft, PageLeft, etc. and calling BringDataItemIntoView, but i never get the desired result. Most of the time the items just appear or swirl around uncoherently.
Could there be some sort of workaround to make this work?

To wrap it up, i want the carousel to animate the items everytime i change the ItemsSource collection.
Any help would be greatly appreciated,
Thanks

Edit: My project is in WPF, of course :)
Maya
Telerik team
 answered on 21 Jul 2010
6 answers
131 views
Hi,

How can i transform an excel table or spreadsheet into a RadGridView, easily and without headaches ?

Thanks for any direction
bob
Top achievements
Rank 1
 answered on 21 Jul 2010
1 answer
76 views
The RadChart sets its ChartLegend.Header to the helpful string "Legend". My users don't require that text, and in the interest of space, I've tried to remove but am unable to completely do so. Setting ChartLegend.Header to null still renders the text "Legend".
Setting it to the empty string doesn't help, as it still renders the empty string:

Actual result
+------------
|
| o Item1   o Item2   o Item3
+------------

Desired result
+------------
| o Item1   o Item2   o Item3
+------------

How do I achieve this effect?
Sia
Telerik team
 answered on 21 Jul 2010
2 answers
94 views
Hello,
Sorry for the bad title. I could not guess what kind of an problem it was.
Bellow is our .xaml and .cs codes. After adding an amount of values to the grid, the grid throws an exception. I gave all of the code at the page because there was another thread about this subject and "telerik" had requested to code.
Generally it gives the error after 20-30 records added to the grid.

The computer specs where the application is used:
1. Ultra mobile pc
2. Atom processor
3. Windows 7 with .net framework 3.5

we are using 2010.1.603.35 version of telerik.


<base:PageBase x:Class="Shop.App.WPF.Pages.Secured.CycleCount.PageCycleCount"
      xmlns:base="clr-namespace:Shop.App.WPF.Pages.Base"
      mc:Ignorable="d"
      d:DesignHeight="600" d:DesignWidth="900"
    Title="Sayım">
 
    <Grid DataContext="{Binding RelativeSource={RelativeSource AncestorType={x:Type base:PageBase}, Mode=FindAncestor}, Path=CycleCountService}">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
        </Grid.RowDefinitions>
         
        <StackPanel Grid.Row="0" Orientation="Horizontal" >
            <TextBlock Margin="5" Style="{StaticResource StyleTextBlock}" VerticalAlignment="Center" Text="Depo"></TextBlock>
            <ComboBox Name="ComboBoxWarehouse" MinWidth="150" Margin="5" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type base:PageBase}, Mode=FindAncestor}, Path=WarehouseContext.Values}" SelectedIndex="0" DisplayMemberPath="Name" SelectionChanged="ComboBoxWarehouse_SelectionChanged"></ComboBox>
        </StackPanel>
         
        <StackPanel Grid.Row="1" Orientation="Horizontal">
            <TextBlock Style="{StaticResource StyleTextBlock}" Text="Stok Kodu" Margin="5" VerticalAlignment="Center"></TextBlock>
            <TextBox Margin="5" VerticalAlignment="Center" Name="TextBoxItemStockCode" Width="200" KeyDown="TextBoxItemStockCode_KeyDown"></TextBox>
            <TextBlock Style="{StaticResource StyleTextBlock}" Text="Adet" Margin="5" VerticalAlignment="Center"></TextBlock>
            <Telerik:RadNumericUpDown Margin="5" Minimum="1" IsInteger="True" x:Name="NumericPieces"></Telerik:RadNumericUpDown>
            <TextBlock Text="{Binding Path=ProductDataContext.Value.ItemName}" Margin="5" VerticalAlignment="Center" Name="TextBlockItemName" Width="Auto" TextWrapping="Wrap"></TextBlock>
        </StackPanel>
         
        <Telerik:RadGridView
            Margin="5"
            Grid.Row="2"
            x:Name="GridItems"
            AutoGenerateColumns="False"
            ItemsSource="{Binding Path=CycleCountItemContext.Values}"
            >
            <Telerik:RadGridView.Columns>
                <Telerik:GridViewDataColumn Header="Stok Kodu" DataMemberBinding="{Binding Path=ItemStockCode}"></Telerik:GridViewDataColumn>
                <Telerik:GridViewDataColumn Header="Stok Adı" DataMemberBinding="{Binding Path=ItemName}"></Telerik:GridViewDataColumn>
                <Telerik:GridViewDataColumn Header="Stok Bakiye" DataMemberBinding="{Binding Path=StartCount}"></Telerik:GridViewDataColumn>
                <Telerik:GridViewDataColumn Header="Satılan Miktar" DataMemberBinding="{Binding Path=SoldCount}"></Telerik:GridViewDataColumn>
                <Telerik:GridViewDataColumn Header="Sayılan" DataMemberBinding="{Binding Path=Counted}"></Telerik:GridViewDataColumn>
                <Telerik:GridViewDataColumn Header="Son Bakiye" DataMemberBinding="{Binding Path=EndCount}"></Telerik:GridViewDataColumn>
                <Telerik:GridViewDataColumn Header="Kategori" DataMemberBinding="{Binding Path=Product.Category.Name}"></Telerik:GridViewDataColumn>
            </Telerik:RadGridView.Columns>
        </Telerik:RadGridView>
    </Grid>
</base:PageBase>

namespace Shop.App.WPF.Pages.Secured.CycleCount
{
    /// <summary>
    /// Interaction logic for PageCycleCount.xaml
    /// </summary>
    public partial class PageCycleCount : PageBase, INotifyPropertyChanged
    {
        private WarehouseContext _WarehouseContext;
 
        public WarehouseContext WarehouseContext
        {
            get { return _WarehouseContext; }
            set
            {
                _WarehouseContext = value;
                PropertyChanged(this, new PropertyChangedEventArgs("WarehouseContext"));
            }
        }
 
        private CycleCountService _CycleCountService = null;
        public CycleCountService CycleCountService
        {
            get
            {
                return _CycleCountService;
            }
            set
            {
                _CycleCountService = new CycleCountService();
                PropertyChanged(this, new PropertyChangedEventArgs("CycleCountService"));
            }
        }
 
        public PageCycleCount()
        {
            PropertyChanged += new PropertyChangedEventHandler(PageCreateNew_PropertyChanged);
 
            CycleCountService = new Business.Services.CycleCountService();
            WarehouseContext = new Business.Contexts.WarehouseContext();
            InitializeComponent();
 
            WarehouseContext.LoadAll();
            CycleCountService.LoadActiveCountItems(WarehouseContext.Values.FirstOrDefault().ID);
        }
 
        void PageCreateNew_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
 
        }
 
        #region INotifyPropertyChanged Members
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        #endregion
 
        private void TextBoxItemStockCode_KeyDown(object sender, KeyEventArgs e)
        {
            CycleCountItem item = null;
 
            try
            {
                if (e.Key == Key.Enter)
                {
                    item = CycleCountService.AddCount(
                        (ComboBoxWarehouse.SelectedItem as Warehouse).ID,
                        TextBoxItemStockCode.Text,
                        Convert.ToInt32(NumericPieces.Value));
                    NumericPieces.Value = 1;
                    GridItems.ScrollIntoView(item);
                    GridItems.SelectedItem = item;
                    TextBoxItemStockCode.Text = "";
 
                    CycleCountService.LoadActiveCountItems((ComboBoxWarehouse.SelectedItem as Warehouse).ID);
                }
            }
            catch (UserException exc)
            {
                SendErrorMessage(exc.Message);
            }
            catch (Exception exc)
            {
                CommonExceptionAction(exc);
            }
        }
 
        private void ComboBoxWarehouse_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                CycleCountService.LoadActiveCountItems((ComboBoxWarehouse.SelectedItem as Warehouse).ID);
            }
            catch (UserException exc)
            {
                SendErrorMessage(exc.Message);
            }
            catch (Exception exc)
            {
                CommonExceptionAction(exc);
            }
        }
    }
}

The Error :

PresentationHost.exe Error: 0 : System.NullReferenceException:
target: Telerik.Windows.Controls.GridView.GridViewItemContainerGenerator.Remove(GeneratorPosition position, Int32 count, Boolean isRecycling)
   target: Telerik.Windows.Controls.GridView.GridViewItemContainerGenerator.System.Windows.Controls.Primitives.IRecyclingItemContainerGenerator.Recycle(GeneratorPosition position, Int32 count)
   target: Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.CleanupRange(IList children, IItemContainerGenerator generator, Int32 startIndex, Int32 count)
   target: Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.CleanupContainers(Int32 firstViewport, BaseItemsControl itemsControl)
   target: Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   target: System.Windows.Controls.ScrollContentPresenter.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.ScrollViewer.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Decorator.MeasureOverride(Size constraint)
   target: System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Control.MeasureOverride(Size constraint)
   target: Telerik.Windows.Controls.GridView.GridViewDataControl.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   target: System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Page.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   target: System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Control.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   target: System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   target: System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Control.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Control.MeasureOverride(Size constraint)
   target: Telerik.Windows.Controls.RadTabControl.MeasureOverride(Size availableSize)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   target: System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Control.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: Telerik.Windows.Controls.DockingPanel.MeasureOverride(Size availableSize)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.DockPanel.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Control.MeasureOverride(Size constraint)
   target: Telerik.Windows.Controls.RadDocking.MeasureOverride(Size availableSize)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
   target: System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   target: System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Page.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   target: System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Decorator.MeasureOverride(Size constraint)
   target: System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Controls.Border.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.Window.MeasureOverrideHelper(Size constraint)
   target: System.Windows.Window.MeasureOverride(Size availableSize)
   target: MS.Internal.AppModel.RootBrowserWindow.MeasureOverride(Size constraint)
   target: System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   target: System.Windows.UIElement.Measure(Size availableSize)
   target: System.Windows.ContextLayoutManager.UpdateLayout()
   target: System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
   target: System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork()
   target: System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
   target: System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
   target: System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
   target: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   target: System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
Dogu
Top achievements
Rank 1
 answered on 21 Jul 2010
1 answer
56 views
to incorporate a windows form for each tile we have.On click of the tile, i want to open up a form associated with the tile. Please let me know. If you have a sample app which does this, it would be great. Thanks.
Valentin.Stoychev
Telerik team
 answered on 21 Jul 2010
7 answers
142 views
Everything in my project is now working perfectly except for when I add an ItemContainerStyle to the main treeview.   My data binding is messed up and none of the HierarchicalDataTemplate styling is applied for the first level.  When I remove the ItemContainerStyle from the main tree, everything works perfectly.

I have uploaded my project since this example has grown quite large.


Thanks

Ryan
Miro Miroslavov
Telerik team
 answered on 21 Jul 2010
1 answer
144 views
Hi All,

This may be silly question. But could not find the answer for this in the forum also. The Question is, How will I change the Width of the Bar in the Bar Chart?

Regards,
Arun
Arun
Top achievements
Rank 1
 answered on 21 Jul 2010
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?