Giter Site home page Giter Site logo

telerik / ui-for-uwp Goto Github PK

View Code? Open in Web Editor NEW
1.2K 99.0 237.0 6.74 MB

This repo contains the source code for Telerik UI for Universal Windows Platform (UWP), which includes 20+ UI controls for developers building UWP applications.

Home Page: http://www.telerik.com/uwp/

License: Other

C# 98.75% Smalltalk 0.29% C++ 0.96% C 0.01% Batchfile 0.01%
csharp uwp uwp-apps visual-studio windows-10 xaml telerik

ui-for-uwp's Introduction

Progress Telerik UI for UWP

This is an open-source version of Telerik UI for Universal Windows Platform (UWP) by Progress. The project is community-supported on Stack Overflow. Commercial support is available at telerik.com/uwp where you'll find a supported commercial trial and pricing options. Please visit telerik.com for UI tools for ASP.NET, WPF, WinForms, or JavaScript.

UI for UWP

Build status

Target Branch Status Recommended Nuget packages version
Production master Build status NuGet
Pre-release beta testing dev Build status -

Available UI Components and Documentation for UI for UWP

UI for UWP is built to target UWP Windows 10 application development and deliver a unique experience based on the Microsoft UX guidelines for Windows Runtime apps. It consists of the following components:

Documentation

The official documentation for UI for UWP is available here and here is the git repo for it Telerik UI for UWP documentaton repo

Demos

The UI for UWP Demos application demonstrates a great number of user case scenarios using Telerik UI for UWP.

Also, you can take a look at the Customers Orders Database sample developed by Microsoft, which showcases the usage of the RadDataGrid control.


Getting started

  • Make sure you have the required software to build UWP applications
  • Clone a copy of the repository code
  • Open UWPControls.sln located in Controls folder and build it
  • Open UWPMap.sln located in Controls folder and build it in x86/x64 and ARM configs
  • All binaries are now located in Binaries folder
  • You can additionaly build a NuGet package by running BuildTools/BuildNuGet.bat. The generated package will be located in the NuGet subfolder.

Downloads

If you want to skip building the project yourself, you can get the prebuilt nuget package.

How to Contribute

UI for UWP is free and open-source. We encourage and support an active, healthy community that accepts contributions from the public. We'd like you to be a part of that community.

Before contributing to UI for UWP, please:

Read our contribution guide, which houses all of the necessary info to:

  • submit bugs,
  • request new features, and,
  • walk you through the entire process of preparing your code for a Pull Request.

Getting Help

As a fully-open source project, UI for UWP is a primarily community-supported project, as such, you are encouraged to use forums like Stack Overflow to post questions, and the issues list of this repo to report bugs.

The UI for UWP team does not provide formal support, except to those customers who have purchased a commercial license for UI for UWP. Please do not create support requests for this project in the issues list for this repo, as these will be immediately closed. You'll be directed to post your question on a community forum.

License

Licensed under the Apache License, Version 2.0. Please refer to LICENSE.md for more information.

.NET Foundation

This project is supported by the .NET Foundation.

Recent news

Like what you see?

If you like what you see, tweet us please

ui-for-uwp's People

Contributors

agerchevprogress avatar apopatanasov avatar awkoren avatar datagram7 avatar davidknaack avatar dilyantraykov avatar georgedarakchiev avatar geotinc avatar hshristov avatar ivan-todorov-progress avatar jbristowe avatar jz5 avatar kalin-todorov avatar lyubkanikolova avatar marchev-prgs avatar nikiatanasow avatar nikolaydemirev avatar pavelrpavlov avatar petar-k-marchev avatar petarmladenov avatar polqnap avatar progressivo avatar stefannenchev avatar stefanov-stefan avatar tkonov avatar vanka78bg avatar vitalyknyazev avatar vvgeorgiev avatar wdev20 avatar zofware avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ui-for-uwp's Issues

Make LoopingListDataItem public to support x:Bind Scenarios

Currently, you cannot use x:Bind in the RadLoopingList ItemTemplate because the LoopingListDataItem is an internal class.

If LoopingListDataItem were public, you will be able to set the ItemTemplate's DataTemplate x:DataType attribute.

An example:

<loopingList:RadLoopingList ItemsSource="{x:Bind ViewModel.Files}" >
            <loopingList:RadLoopingList.ItemTemplate>
                <DataTemplate x:DataType="primitives:LoopingListDataItem">
                    <Grid>
                        <TextBlock Text="{x:Bind Item}" />
                    </Grid>
                </DataTemplate>
            </loopingList:RadLoopingList.ItemTemplate>
</loopingList:RadLoopingList>

ComboBoxColumn Binding to List<string> Null Ref Exception

To reproduce this, follow the example code here in the documentation.

To temporarily work around it, you can use your own data model and set SelectedValuePath and DisplayMemberPath.

Here's an example of a workaround...

Start with the demo code in the documentation, however use this class for the items source and this ComboBoxColumn definition:

public class ExternalItemsProvider
    {
        public static List<ExternalItem> Items { get; } = new List<ExternalItem>
        {
            new ExternalItem("CHF"),
            new ExternalItem("JPY"),
            new ExternalItem("RUB"),
            new ExternalItem("USD")
        };
    }

    public class ExternalItem
    {
        public ExternalItem(string title)
        {
            this.Title = title;
            this.Value = 0;
        }

        public string Title { get; set; }
        public double Value { get; set; }
    }
<telerikGrid:DataGridComboBoxColumn PropertyName="Currency"
                                                    SelectedValuePath="Title"
                                                    DisplayMemberPath="Title"
                                                    ItemsSource="{Binding Items, Source={StaticResource items}}" />

Charts - missing chart grid lines and bad colors on Windows ver. 1703 (Creators Update)

Even the problem with missing parts of series-lines was fixed by "chart clip fix" introduced a few days ago, there is still an issue with wrong colors of axes and chart grid lines not drawn on latest W10 build (on both PC desktop and mobile).

The problem with wrong color of axes is more noticeable when Dark theme is used.
Instead of white they are rather black.
charts-bug
charts-ok

Second, chart grid lines are missing completely.
gridlines-bug
gridlines-ok

Both issues can be simply reproduced using SDKExamples.UWP project build e.g. under VS2017 for x86 and running on machine with W10 v.1703.

RadDataGrid throws a layout cycle exception

See microsoft/Windows-appsample-customers-orders-database#3

This appears to be an issue with the RadDataGrid control and not the sample code because we can reproduce it in a new app with just the control, as long as the control is the right size and has the right contents. For a simplified repro, see https://github.com/KarlErickson/layout-cycle. The exception occurs consistently on launch with this repro, but only on some of the machines we tested it on. We couldn't repro on most machines we tried it on.

RadDataGrid nested Binding not working

Binding does not work if I try to bind to it like this:

<telerik:DataGridTextColumn PropertyName="Computer.Manufacturer" Header="Computer Manufacturer"/>

in this case Computer is a Object that Contains a property named Manufacturer of type string.

Telerik Version: 1.0.0.1

InvalidCastException: Specified cast is not valid

An exception is thrown when I try to expand the "Miscellaneous" property group in the Visual Studio 2017 designer property window.

Steps to reproduce:
New UWP solution, blank page, add Telerik.UI.for.UniversalWindowsPlatform 1.0.0.1 package and then place new RadDataGrid control on page. With the grid selected go to the properties window and expand the Miscellaneous properties group and exception is thrown

InvalidCastException: Specified cast is not valid

StackTrace
at Telerik.UI.Xaml.Controls.Grid.RadDataGrid.get_RealizedItemsVerticalBufferScale()
InnerException: None

RadDataGrid doesn't allow row selection if removed and re-added to visual tree.

I have a RadDataGrid on a blade control (UPW Community Toolkit) and it works fine the first time I show the blade, but if I hide the blade and then re-open it, the RadDataGrid won't allow row selection. It still allows header actions (i.e. sorting and filtering). And I can give the control focus and it allows keyboard selection of rows via arrows and space bar, but not via mouse.

As a workaround, I create a new instance of the RadDataGrid and add it to the visual tree every time the blade is opened (and remove any previous instances).

Designer view in VS2017 crashes when highlighing telerik xaml elements in xaml view

Steps to reproduce:
New project
Add Telerik.Ui.for.UniversalWindowsPlatform nuget package
Add RadialGauge control
Set some properties.
Highlight some XAML code to copy and paste or whatever

An unhandled exception has occurred: (sorry for the image instead of text. But VS2017 is locked up in this state so I can't select the text

telerikissue

At the moment these controls are unusable. Have had a day worth of fiddling and crashes constantly.

When Telerik control on page Blend 2017 crashes on load of page

Steps to reproduce:

New blank project in VS2017
Add Telerik.UI.for.UniversalWindowsPlatform 1.0.0.2 nuget package
Add RadialGuage control to main page
Build
Open same project with Blend 2017

Just sits there loading the designer. Ultimately never finishes, trying to load another page or cs file results in Blend 2017 crashing and restarting.

On-Board project to the .NET Foundation

We're getting ready to bring the project into the .NET Foundation, but before we
do we need to do the following:

Getting into the .NET Foundation

  • Make sure the project has a good name that is easy to remember and
    spell. Check that it doesn't conflict with another existing project
  • Make sure the people involved in the project want to join the .NET Foundation
  • Make sure the project has a clear understanding about how it accepts contributions and the process
    it follows when selecting new committers to the project.
  • Register an interest in joining the .NET Foundation
  • Work with the .NET Foundation to fill out an On-Boarding Questionaire
  • .NET Foundation sends out completed questionaire to .NET Foundation Advisory Council for comments
  • .NET Foundation Executive Director submits new project proposal to the .NET Foundation Board
  • Configure a CI build for the project and ensure build status badges are available from the README

Once accepted into the .NET Foundation

  • Sign the contribution / assignment agreement
  • Agree a date to move into the .NET Foundation
  • Prepare a guest blog post announcing the move on the .NET Foundation Blog
  • Read the code of conduct,
    link to it in your code and
    understand what to do if you are concerned about any behaviour or have
    concerns reported to you.
  • Tell the world we have joined!
  • Get CLA Automation enabled to ensure contributors can easily sign the
    Contribution License Agreement [CLA is in place which contains license grant from contributor to Telerik, which then allows Telerik to sublicense it to .NET Foundation]
    • Send a PR to add the Project into the .NET Foundation
      list
  • Ensure the repo contents are up to date with .NET Foundation guidance
  • Review the README guidance and update if necessary
  • If applicable update the LICENSE file to show Copyright has been assigned to the .NET Foundation and look to update any file headers. [Not applicable, Telerik remains copyright owner]
  • If applicable, update any copyright statements in websites owned by the project to reflect
    assignment to the .NET Foundation. [Not applicable, Telerik remains copyright owner]
  • If applicable, update any websites associated with the project to include
    "Supported by the .NET Foundation" or
    similar link back to the .NET Foundation in the footer. If applicable, please
    include image links from our swag repo. (We think a link in the footer using the horizontal logo looks very nice.)
  • Sign up for Project Leader news
  • Configure any resources requested from the .NET Foundation (SSL Certs, Code Signing,
    Secret Management, Build Servers etc) [Builds were requested and are in place]

 
 

Allow custom columns

You can't currently inherit from DataGridColumn, since it contains several internal abstract members.
To simplify column creation for certain types, it would be much easier to be able to create your own columns by overriding CreateContainer and return your own framework element.

Ship nuget pkg

What's the reason for not simply publishing UI-for-UWP as a nuget package but instead make everybody clone the repo and build it themselves?

Please ship the current state as a nuget pkg on a regular cadence.

Nuget Package Name

I just downloaded the Telerik library and thought that the NuGet package name is strange.

Shouldn't it be something like "telerik.controls.uwp" ?
and not "telerik.ui.for.universalWindowsPlatform".

Using x:Bind to ItemsSource with RadDataGrid crashes the XAML Designer in Visual Studio

Using Telerik.UI.for.UniversalWindowsPlatform version 1.0.0.1, the XAML designer crashes when using x:Bind to the ItemsSource property of the RadDataGrid control.

You get a "TargetParamterCounterException: Parameter count mismatch." exception with the following stack trace:

at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at Telerik.Data.Core.BindingExpressionHelper.<>c__DisplayClass0_0.b__0(Object item)
at Telerik.Data.Core.Fields.PropertyInfoFieldInfo.GetValue(Object item)
at Telerik.UI.Xaml.Controls.Grid.DataGridTypedColumn.GetValueForInstance(Object instance)
at Telerik.UI.Xaml.Controls.Grid.Model.GridModel.Telerik.UI.Xaml.Controls.Grid.ITable.GetCellValue(ItemInfo rowItemInfo, ItemInfo columnItemInfo)
at Telerik.UI.Xaml.Controls.Grid.CellsController1.GetCellDecorator(IItemInfoNode parentRow, ItemInfo columnItemInfo, Int32 rowLine, Int32 columnLine) at Telerik.UI.Xaml.Controls.Grid.CellsController1.GenerateCellsForRow(IItemInfoNode rowDecorator, Int32 rowSlot)
at Telerik.UI.Xaml.Controls.Grid.Model.GridModel.GenerateCellsForReadOnlyRow(Int32 rowSlot, Double largestRowElementWidth, IItemInfoNode rowDecorator)
at Telerik.UI.Xaml.Controls.Grid.Model.GridModel.Telerik.UI.Xaml.Controls.Grid.ITable.GenerateCellsForRow(Int32 rowSlot, Double largestRowElementHeight, IItemInfoNode rowDecorator)
at Telerik.UI.Xaml.Controls.Grid.NodePool2.GenerateCellsForLine(Int32 slot, Double largestLength, T lastElement) at Telerik.UI.Xaml.Controls.Grid.NodePool2.GenerateContainer(IList1 itemInfos) at Telerik.UI.Xaml.Controls.Grid.NodePool2.MeasureForward(MeasureContext& context)
at Telerik.UI.Xaml.Controls.Grid.NodePool2.MeasureVertically(RadSize availableSize, Double offset, Double bufferScale) at Telerik.UI.Xaml.Controls.Grid.NodePool2.OnMeasure(RadSize availableSize, Double offset, Int32 frozenElementsCount, Double verticalBufferScale)
at Telerik.UI.Xaml.Controls.Grid.Model.GridModel.MeasureCells(RadSize newAvailableSize)
at Telerik.UI.Xaml.Controls.Grid.RadDataGrid.OnCellsPanelMeasure(RadSize newAvailableSize)
at Telerik.UI.Xaml.Controls.Grid.Primitives.DataGridCellsPanel.MeasureOverride(Size availableSize)
at Windows.UI.Xaml.UIElement.Measure(Size availableSize)
at Telerik.UI.Xaml.Controls.Grid.Primitives.DataGridRootPanel.MeasureOverride(Size availableSize)
at Windows.UI.Xaml.FrameworkElement.MeasureOverride(Size availableSize)
at Telerik.UI.Xaml.Controls.RadControl.MeasureOverride(Size availableSize)
at Windows.UI.Xaml.UIElement.UpdateLayout()
at Microsoft.VisualStudio.DesignTools.UwpDesigner.Views.UwpImageHost.WindowsXamlSceneWrapper.UpdateLayout()
at Microsoft.VisualStudio.DesignTools.UwpDesigner.Views.UwpImageHost.set_RootInstance(Object value)

Memory leak in RadDataBoundListBox

The event handler registered to CompositionTarget.Rendering will not be removed when unloading.
This issue make the instance of RadDataBoundListBox will never be desconstructed.

Fix: Remove handler after RadDataBoundListBox unloading.

Add this.Unloaded += (sender, args) => CompositionTarget.Rendering -= this.CompositionTarget_Rendering; into ctor function

PieChart rendering is broken with .Net Native 1.6 on ARM platform

Due to an optimizer bug in .Net Native 1.6 PieChart is not rendered properly.

Prerequisites:

  • Visual Studio 2017;
  • Latest Microsoft.NETCore.UniversalWindowsPlatform package (v5.3.x);
  • Build in Release mode with enabled .Net Native tool chain;
  • Run on mobile, i.e. ARM platform (it works ok on x86).

Not that it is Telerik bug, but there is an easy and safe workaround until MS releases a fix.

ListView items

Can RadListView load more than 4000 items easily as it has UI Virtualization?

How to remove the "TemplateNotAppliedException"?

I have cloned this repository and build it for my project. I added these dlls:

  • Telerik.Core.dll
  • Telerik.Data.dll
  • Telerik.UI.Xaml.Controls.Data.UWP.dll
  • Telerik.UI.Xaml.Input.UWP.dll
  • Telerik.UI.Xaml.Primitives.UWP.dll

I used the RadListView control in my project. When I run the project it throws a exception:

{"Exception of type 'Telerik.UI.Xaml.Controls.TemplateNotAppliedException' was thrown."}

I check the source code about RadControls.cs and found some code like this:

       private void VerifyTemplateApplied()
        {
            if (DesignMode.DesignModeEnabled)
            {
                // TODO: This may happen in Blend
                return;
            }

            if (!this.IsTemplateApplied)
            {
                throw new TemplateNotAppliedException(this.GetType(), this.DefaultStyleKey);
            }
        }

The exception was thrown by this code. What is it mean?
I have already set the ItemTemplate for the RadListView control. I don't know how to resolve it. Thanks!

DataGrid Header doesn't update

After rendering a DataGridColumn, if you update the Header property's value (via code or VisualState), the change doesn't occur in the UI.

To replicate, use the following code against any DataGrid:

private void Button_OnClick(object sender, RoutedEventArgs e)
{
    foreach (var dataGridColumn in MyDataGrid.Columns)
    {
                dataGridColumn.Header = "iterated!";
    }
}

Note:
The underlying Header value itself does change, only the UI isn't updated. If you run the above code again with a break point in the loop, you'll see the Header's value is dataGridColumn.Header from the previous iteration.

2017-03-10_1539

Below is full code to reproduce:

MainPage.xaml

<Page.DataContext>
        <viewModels:MainPageViewModel />
    </Page.DataContext>

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <grid:RadDataGrid x:Name="MyDataGrid"
                          ItemsSource="{Binding Items}"
                          AutoGenerateColumns="False">
            <grid:RadDataGrid.Columns>
                <grid:DataGridTextColumn x:Name="AnnualQuantityColumn"
                                         PropertyName="AnnualQuantity"
                                         Header="Annual Quantity" />
                <grid:DataGridTextColumn x:Name="TypeNameColumn"
                                         PropertyName="TypeName"
                                         Header="Type" />
            </grid:RadDataGrid.Columns>
        </grid:RadDataGrid>

        <StackPanel x:Name="StatusPanel"
                    HorizontalAlignment="Center"
                    VerticalAlignment="Center"
                    Padding="20"
                    Background="Green">
            <TextBlock x:Name="StatusTextBlock"
                       Foreground="White"
                       HorizontalAlignment="Center"
                       Margin="0,0,0,20" />
            <Button x:Name="StatusButton"
                    Content="Click to change headers"
                    Background="DarkSlateGray"
                    Foreground="White"
                    Click="Button_OnClick" />
        </StackPanel>

        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="AdaptiveStates">
                <VisualState x:Name="NarrowState">
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="0" />
                    </VisualState.StateTriggers>
                    <VisualState.Setters>
                        <Setter Target="AnnualQuantityColumn.Header"
                                Value="Quantity (small)" />
                        <Setter Target="TypeNameColumn.Header"
                                Value="Type (small)" />
                        <Setter Target="StatusTextBlock.Text"
                                Value="Page is in small state" />
                        <Setter Target="StatusPanel.Background"
                                Value="Red" />
                    </VisualState.Setters>
                </VisualState>
                <VisualState x:Name="NormalState">
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="720" />
                    </VisualState.StateTriggers>
                    <VisualState.Setters>
                        <Setter Target="AnnualQuantityColumn.Header"
                                Value="Quantity (wide)" />
                        <Setter Target="TypeNameColumn.Header"
                                Value="Type (wide)" />
                        <Setter Target="StatusPanel.Background"
                                Value="Green" />
                        <Setter Target="StatusTextBlock.Text"
                                Value="Page is in wide state" />
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
    </Grid>

MainPage.xaml.cs

public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void Button_OnClick(object sender, RoutedEventArgs e)
        {
            foreach (var dataGridColumn in MyDataGrid.Columns)
            {
                dataGridColumn.Header = "iterated!";
            }
        }
    }

MainPageViewModel

public class MainPageViewModel : ViewModelBase
    {
        private ObservableCollection<ItemViewModel> items;

        public ObservableCollection<ItemViewModel> Items
        {
            get { return items ?? (items = GenerateSampleItems()); }
            set { items = value; OnPropertyChanged(); }
        }

        private ObservableCollection<ItemViewModel> GenerateSampleItems()
        {
            return new ObservableCollection<ItemViewModel>
            {
                new ItemViewModel { TypeName = "Item One", AnnualQuantity = 6353 },
                new ItemViewModel { TypeName = "Item Two", AnnualQuantity = 838 },
                new ItemViewModel { TypeName = "Item Three", AnnualQuantity = 9278 }
            };
        }
    }

ItemViewModel

public class ItemViewModel
    {
        public string TypeName { get; set; }
        public int AnnualQuantity { get; set; }
    }

Add sample app

A sample app should be included here, which shows all the available UWP controls and their most important functions. That way, users can play with the controls to find out how they work.

Add Property to Disable RadSideDrawer

There are scenarios where you would want to prevent the RadSideDrawer from opening, For example, the spacebar may unintentionally open the side drawer when the focus in within a TextBox or Entry (Xamarin Forms) control.

Currently, the only way to prevent this is to extend the RadSideDrawer and create a custom control that overrides OnKeyDown.

It would be useful to have an IsDrawerEnabled property.

Implement and improve overall accessibility

The UI controls need to have better base implementations of accessibility patterns for users who rely on screen readers and other tools to interact with apps. This item should track the overall improvement for each control:

  • DataForm
  • Grid
  • ListView
  • LoopingList
  • Calendar Scheduler
  • Date/Time Picker
  • Expander
  • AutoCompleteBox
  • NumericBox
  • Rating
  • RangeSlider
  • RadialMenu
  • HexView
  • SideDrawer
  • HubTile
  • Pagination
  • Charts
  • BusyIndicator
  • Map

Chart issues on Windows ver. 1703 (Creators Update)

This issue was initially observed on Redstone 2 Insider builds but now, when the CU is out and official, the problem still persists. See here

I have similar problem on my own app in Debug and Release/Native too. Missing parts of series-line, bad colors of axis etc. The same when sources from repository are used (and build) and when using original (purchased) version. Everything was fine before W10 v.1703.
See screenshot:
charts-ok

charts-bug

TargetParameterCountException when binding ItemsSource with x:Bind expression

When I try to bind the ItemsSource property of the RadDataGrid with an x:Bind expression

<Grid:RadDataGrid ItemsSource="{x:Bind ViewModel.Items}"></Grid:RadDataGrid>

I get the following exception:

TargetParameterCountException: Parameter count mismatch.
StackTrace
at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at Telerik.Data.Core.BindingExpressionHelper.<>c__DisplayClass0_0.b__0(Object item)
at Telerik.Data.Core.Fields.PropertyInfoFieldInfo.GetValue(Object item)
at Telerik.UI.Xaml.Controls.Grid.DataGridTypedColumn.GetValueForInstance(Object instance)
at Telerik.UI.Xaml.Controls.Grid.Model.GridModel.Telerik.UI.Xaml.Controls.Grid.ITable.GetCellValue(ItemInfo rowItemInfo, ItemInfo columnItemInfo)
at Telerik.UI.Xaml.Controls.Grid.CellsController1.GetCellDecorator(IItemInfoNode parentRow, ItemInfo columnItemInfo, Int32 rowLine, Int32 columnLine) at Telerik.UI.Xaml.Controls.Grid.CellsController1.GenerateCellsForRow(IItemInfoNode rowDecorator, Int32 rowSlot)
at Telerik.UI.Xaml.Controls.Grid.Model.GridModel.GenerateCellsForReadOnlyRow(Int32 rowSlot, Double largestRowElementWidth, IItemInfoNode rowDecorator)
at Telerik.UI.Xaml.Controls.Grid.Model.GridModel.Telerik.UI.Xaml.Controls.Grid.ITable.GenerateCellsForRow(Int32 rowSlot, Double largestRowElementHeight, IItemInfoNode rowDecorator)
at Telerik.UI.Xaml.Controls.Grid.NodePool2.GenerateCellsForLine(Int32 slot, Double largestLength, T lastElement) at Telerik.UI.Xaml.Controls.Grid.NodePool2.GenerateContainer(IList1 itemInfos) at Telerik.UI.Xaml.Controls.Grid.NodePool2.MeasureForward(MeasureContext& context)
at Telerik.UI.Xaml.Controls.Grid.NodePool2.MeasureVertically(RadSize availableSize, Double offset, Double bufferScale) at Telerik.UI.Xaml.Controls.Grid.NodePool2.OnMeasure(RadSize availableSize, Double offset, Int32 frozenElementsCount, Double verticalBufferScale)
at Telerik.UI.Xaml.Controls.Grid.Model.GridModel.MeasureCells(RadSize newAvailableSize)
at Telerik.UI.Xaml.Controls.Grid.RadDataGrid.OnCellsPanelMeasure(RadSize newAvailableSize)
at Telerik.UI.Xaml.Controls.Grid.Primitives.DataGridCellsPanel.MeasureOverride(Size availableSize)
at Windows.UI.Xaml.UIElement.UpdateLayout()
at Microsoft.VisualStudio.DesignTools.UwpDesigner.Views.ViewObjects.WindowsUIXamlViewVisual.UpdateLayout()
at Microsoft.VisualStudio.DesignTools.UwpDesigner.Views.WindowsXamlSceneView.UpdateLayoutInternal()
at Microsoft.VisualStudio.DesignTools.Designer.Views.SceneView.UpdateLayout()

InnerException: None

When I bind with a standard binding

<Grid:RadDataGrid ItemsSource="{Binding Items}"></Grid:RadDataGrid>

It binds correctly.

Windows.UI.Xaml.ResourceDictionary.Source Map control issue

I downloaded the code because I want to use map control.
I have this issue when I run my app.
I just added the control to the page.

The text associated with this error code could not be found.

Failed to assign to property 'Windows.UI.Xaml.ResourceDictionary.Source' because the type 'Windows.Foundation.String' cannot be assigned to the type 'Windows.Foundation.Uri'. [Line: 66 Position: 29]

Getting ThrowAddingDuplicateWithKeyArgumentException when using RadListView

I'm getting ThrowAddingDuplicateWithKeyArgumentException when using RadListView. I've attached is sample app so hopefully this will help you identify the issue.

at System.ThrowHelper.ThrowAddingDuplicateWithKeyArgumentException(Object key)
at System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary2.Add(TKey key, TValue value)
at Telerik.UI.Xaml.Controls.Data.ListView.Model.BaseLayoutStrategy.RecycleLocally()
at Telerik.UI.Xaml.Controls.Data.ListView.Model.BaseLayoutStrategy.MeasureContent(RadSize availableSize, Double offset, Double bufferScale)
at Telerik.UI.Xaml.Controls.Data.ListView.Model.LayoutController.MeasureContent(RadSize newAvailableSize)
at Telerik.UI.Xaml.Controls.Data.ListViewModel.MeasureContent(RadSize newAvailableSize)
at Telerik.UI.Xaml.Controls.Data.RadListView.OnContentPanelMeasure(RadSize newAvailableSize)
at Telerik.UI.Xaml.Controls.Data.ListView.ListViewPanel.MeasureOverride(Size availableSize)

TelericUiControls.zip

UWP Project should contains the actual code

Hello,

I would like to keep track of some issues I saw. Please let me know if this is not how you want to work.

For now UWP projects reference Shared projects. While I see why it was done like this, I think this does not make sense anymore in the current context

KeyNotFoundException is thrown when all columns in the DataGrid have Collapsed Headers

If all columns in the DataGrid have a Visibility set to Collapsed for their Headers the control crushes with KeyNotFoundException:
2017-04-19_1655

The exception is caused by the OnArrange method from the NodePool class. Inside that method a dictionary named "columnWidth" is used. When all headers are Collapsed the dictionary is empty, but the method tries to get a value from it:
arrangeRect = new RadRect(topLeft.X, topLeft.Y + offset + indentOffset, length, this.columnWidth[level] - indentOffset);

The dictionary is empty because it does not take into account scenarios with width equals to 0 in the UpdateRowOrColumnLength method.

It seems the DataBoundListBox did not support virtualization

I created a very simple demo to verify it. Here is the code.

public sealed partial class MainPage : Page
    {
        public TestViewModel ViewModel { get; set; }
        public MainPage()
        {
            this.InitializeComponent();
            ViewModel = new TestViewModel();
            DataboundLb.DataContext = ViewModel;
        }
    }

    public class TestViewModel
    {
        private int currentCount = 0;
        public IncrementalLoadingCollection<TModel> Months { get; set; }
        public TestViewModel()
        {
            Months = new IncrementalLoadingCollection<TModel>(this.GetMoreItems) { BatchSize = 5000 };
        }

        private async Task<IEnumerable<TModel>> GetMoreItems(uint count)
        {
            await Task.Delay(1000);
            if (this.currentCount >= 100000)
            {
                return null;
            }

            var random = new Random(Environment.TickCount);
            var result = Enumerable.Range(this.currentCount, (int)count).Select(x => new TModel { Label = "item " + x.ToString(), Height = random.Next(50, 150) }).ToList();
            currentCount += (int)count;
            return result;
        }
    }

    public class TModel
    {
        public string Label { get; set; }
        public int Height { get; set; }
    }
<Page
    x:Class="TelerikDataboundLbViewer.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TelerikDataboundLbViewer"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:telerikDataControls="using:Telerik.UI.Xaml.Controls.Data"
      mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <telerikDataControls:RadDataBoundListBox Grid.Row="1"
                                                 ItemsSource="{Binding Months}"
                                                 x:Name="DataboundLb">
            <telerikDataControls:RadDataBoundListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="12,12"
                                Background="Yellow"
                                Height="{Binding Height}">
                        <TextBlock Text="{Binding Label}"
                                   HorizontalAlignment="Center"
                                   Margin="12,12" />
                    </StackPanel>
                </DataTemplate>
            </telerikDataControls:RadDataBoundListBox.ItemTemplate>
        </telerikDataControls:RadDataBoundListBox>
    </Grid>
</Page>

Then I run it , the ListBox took very long time to show the items.
And I checked the visual tree by Live Visual Tree , I found that all 5000 items had been created.
visual tree

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.