Skip to the full changelog

Get the new release

We’re excited to announce the release of ComponentOne Studio for Xamarin 2018 v3, which includes many enhancements to the suite. FlexGrid and FlexChart are both being substantially improved, we have a major new sample, and many quality-of-life improvements will enhance your Xamarin experience.

MyBI Sample

MyBI is a dashboard application for mobile devices and Xamarin.Forms modeled after current mobile design trends. It uses Gauges, FlexChart, and FlexGrid to summarize sales data, and is built utilizing our new Material Design appearance for FlexGrid.

Xamarin Business Intelligence app

Get from the Windows Store | Get from the Google Store | Read the blog on the MyBI app.

Material Design theme added to Xamarin FlexGrid

The look and feel of a UI is very important on mobile, and we’re interested in supporting the newest design trends for our Xamarin controls. Google’s Material Design pattern produces a simple, beautiful mobile UI, and we’ve done a lot of work to have FlexGrid truly embrace its look and feel.

Material Design in FlexGrid

We’re adding many new properties for FlexGrid:

  • Configure gridlines, icons and icon position using C1Icon
  • A new Checklist selection mode and behavior, which allows you to make non-contiguous selection (much like the ListBox mode found on other platforms) while following a well-understood mobile UI pattern. The ClassicStyle is also available for those who prefer the old appearance.
  • Support for multi-column sorting

C1Icon: Custom Icons for Xamarin FlexGrid

C1Icon is a new abstract class that makes it easy to customize all of the icons in FlexGrid using images, fonts, or even vector data on platforms that support it. The following icons now have templates that can be configured using C1Icon.

  • SortAscendingIconTemplate
  • SordingDescendingIconTemplate
  • GroupExpandedIconTemplate
  • GroupCollapsedIconTemplate
  • EditIconTemplate
  • NewRowIconTemplate
  • DetailCollapsedIconTemplate
  • DetailExpandedIconTemplate

Xamarin Custom Icons with C1Icon

You can select from built-in templates for triangles, arrows, and chevrons, and you can easily use other objects that best suit your FlexGrid. Configuring the icons is quite easy:

XAML

<c1:FlexGrid x:Name="grid" SortIconPosition="Left" Grid.Row="2"> 

    <c1:FlexGrid.SortAscendingIconTemplate> 

        <core:C1IconTemplate> 

            <DataTemplate> 

                <core:C1FontIcon Text="↑" Color="#c47a85"/> 

            </DataTemplate> 

        </core:C1IconTemplate> 

    </c1:FlexGrid.SortAscendingIconTemplate> 

</c1:FlexGrid> 

C#

grid.SortAscendingIconTemplate = C1IconTemplate.Triangle; 

grid.SortAscendingIconTemplate= new C1IconTemplate(() => { return new C1FontIcon(); });

Read more about C1Icon

Updates to Xamarin Input Controls

The appearance of FullScreenMode has been improved by making the appearance closer to that of the UISearchController on iOS. This should make the Input controls look and feel much better:

FullScreenMode on iOS

We’ve also added new properties for configuring the colors of the new appearace through CloseButtonTextColor and CloseButtonBackgroundColor (CloseButtonForeground and CloseButtonBackground on UWP).

Updates to Xamarin FlexChart

We’ve added two new chart types, including StepCharts and TreeMap.

Xamarin Step Charts

Xamarin Treemap

In addition, other new features make it easier to handle overlapping data labels. These include:

  • Auto arrangement
  • Rhe ability to hide overlapping labels
  • Rotate data labels
  • Trim or wrap content inside of them

On small phone screens, these new functions can make a huge difference in readability.

C#

//Auto-position DataLabels

flexChart.DataLabel.Position = ChartLabelPosition.Auto; 

//Hide overlapping DataLabels

flexChart.DataLabel.Overlapping = ChartLabelOverlapping.Hide; 

//Rotate DataLabels

flexChart.DataLabel.Angle = 45;

//Trim DataLabels based on max width

flexChart.DataLabel.MaxWidth = 35;

flexChart.DataLabel.ContentOptions = ContentOptions.Trim; 

FlexPie also has new position options for data labels including circular and radial positioning:

Circular and radial positioning in Xamarin pie chart

Other Enhancements to Xamarin controls

  • FlexGrid fixed a potential memory leak issue on iOS

  • CollectionView fixed a limitation in C1GroupCollectionView where the “Clear” notification was raised after editing items

  • C1Input fixed a potential memory leak issue on iOS

Learn more about FlexChart


Full release notes below:

2018 v3 Change Log

General

Improvements

  • Added MyBI sample project.

Core

Bug fixes

  • [X.Android] Fixed an issue where Java.lang.NullPointer Exception Box is shown and control does not render at Designer File at VS17 version 15.7.6.
  • [X.Android] C1Border layout was now works when setting BorderAlignment=Inner.
  • [X.Android] ObjectDisposedException no longer occurs when check/uncheck checkbox in merged column with boolean datatype after apply sorting.
  • _ [X.iOS]_ C1Border reimplemented to reduce layers blending.
  • [XF] Frame was not rendering correctly for UWP.

Calendar

Bug fixes

  • [X.iOS] Fixed a potential memory leak on iOS platform.

CollectionView

Improvements

  • CollectionView is now be usable with Windows Forms projects and is used by C1DataFilter on that platform.
  • [Windows Forms] Added support for filtering the C1BindingListCollectionView with the Equal filter operator using DBNull.Value or null.
  • [Windows Forms] Added support for the DateTime type when filtering the C1BindingListCollectionView.
  • GroupCollectionView will not notify as Reset/Refresh with any change from source anymore. It will raise corresponding notification.

Bug fixes

  • [Windows Forms] Filtering the C1BindingListCollectionView didn't work with the FullDateTimePattern format of DateTime value.
  • [Windows Forms] Filtering the C1BindingListCollectionView didn't work when the CultureInfo of the application was different from the InvariantCulture.

FlexChart

Improvements

  • Added FlexChart and FlexPie data label auto arrange functions.
  • Added Step, StepArea, StepSymbols, and TreeMap chart types for FlexChart.
  • Added TreeMap sample for FlexChart101.

Bug Fixes

  • _ [XF]_ Fixed an ArgumentOutOfRangeException that occurred when removing a series (customized within SymbolRendering event) from Stacked chart type with setting UpdateAnimation.
  • [XF][X.iOS][X.Android] Fixed an issue where border lines of data lable are still displayed even though DataLabel Border is set FALSE and StrokeThickeness is set zero.
  • [XF] 'An unhandled win32 exception' occured on tapping data points with 'Point' SelectionMode if symbols are customized within SymbolRendering event on UWP.
  • [XF] Fixed a situation where System.Debugger.Break() is called and the application stops at about 30 seconds after loading Dynamic chart on UWP.
  • [X.Android] Fixed a System.ArgumentNullException that could occur if control's Binding property is not set.
  • [XF][X.iOS][X.Android] Fixed an issue where the update animation doesn't work when updating the Chart by Adding or Removing chart values.
  • [X.iOS][X.Android][XF] Fixed a System.NullReferenceException that occurred if e.PlotElement property setting within SymbolRendered event.
  • [XF] Data points of Scatter chart are now render if chart is bound with single series on UWP.
  • [XF] DataLabels no longer get clipped when renders against the plot area boundaries in all DataLabel Positions.
  • [XF] Symbol of scatter chart is displayed out of plot area if chart is bound on single series with single data point.
  • [XF][X.iOS][X.Android] Axis labels are shown inside plot area when setting AxisX/Y LabelAngle.
  • [XF] LineMarker's Label Content should correctly be shown on iOS.
  • [XF] Application has no longer exited with code 0 if setting LineMarker on NullDataSource Histogram chart on UWP.
  • [XF] ArgumentNullException occurs when Axis X/Y LabelLoading events are called without setting e.Label value.
  • [XF] ArgumentNullException occurs when SymbolLoading event is called without setting e.PlotElement.Content.
  • [X.iOS][X.Android] Control's properties set form Property window will now take effect on runtime.
  • [XF] System.NullReferenceException no longer occurs if e.PlotElement property setting within SymbolRendered event.

FlexGrid

Improvements

  • BorderWidth will overrides borders of the cells on the boundary.
  • [Android] Added FlexGridClassicStyle style.
  • [iOS] Style (Default, Classic) property added.
  • Material style applied to FlexGrid. Use ClassicStyle to make FlexGrid look as before.
  • Adjusted dynamic auto-scroll speed when dragging columns and rows.
  • CheckListBehavior added to allow FlexGrid rows to be selected through checkboxes.
  • Sorting was changed to have three states (Asc, Desc, None), this way the sorting can be reverted through the user interface.
  • Multi-column sort added.
  • ColumnHeaderGridLinesVisibility, RowHeaderGridLinesVisibility and TopLeftHeaderGridLinesVisibility properties added.
  • DefaultColumnWidth and DefaultRowHeaderColumnWidth property added.
  • SortIconPosition, SortAscendingIconTemplate and SortDescendingIconTemplate properties added.
  • GroupExpandedIconTemplate and GroupCollapsedIconTemplate properties added.
  • FlexGridDetailProvider.DetailExpandedIconTemplate and DetailCollapsedIconTemplate properties added.
  • EditIconTemplate property added.
  • NewRowIconTemplate property added.

Breaking Changes

  • HeadersGridLinesVisibility is no longer supported, use ColumnHeaderGridLinesVisibility, RowHeaderGridLinesVisibility or TopLeftHeaderGridLinesVisibility instead.
  • DefaultColumnHeadersRowHeight renamed to DefaultColumnHeaderRowHeight.
  • GridRow.Height type changed from Nullable to GridLength.

Bug Fixes

  • [XF] SelectionChanged event no longer fires when navigate back to previous page after any cell is selected.
  • [X.Android] Merged custom cell value are now shown in CustomMerging page.
  • [XF][X.iOS][X.Android] Fixed layout of column header cells.
  • [XF] System.ObjectDisposedException occurs when clicking on the remaining SelectionMenu after navigating back to Home page on Android.
  • [XF][X.iOS][X.Android] ArgumentOutOfRangeException occurs after all checkboxes in one group are checked/unchecked quickly in multiple level grouped FlexGrid.
  • [X.iOS] Dragging columns and rows rendering issue fixed.
  • Changed column headers row so it allows merging by default when AllowMerging=ColumnHeader.
  • Changed default FrozenLinesColor to inherit GridLinesColor by default and fixed ClassicStyle to look like Excel.
  • [XF] System.Diagnostics.Debugger.Break() is no longer called when clicking on Filter Button without exiting from Editmode in Filter Page on UWP.
  • [X.iOS] Fixed an issue where layout did not display correctly when displaying grid inside auto-sized panel and when using auto-sized columns.
  • [XF] Sort icon can now be changed to 'None' state when tap over sort icon on Android.
  • [XF][X.iOS][X.Android] Collapsed groups are no longer expanded after editing cell in one expanded group is completed.
  • [XF][X.iOS][X.Android] Fixed an issue where FullTextFilterBehavior was not filtering the text set in the FilterEntry when attached.
  • [X.iOS] Fixed a potential memory leak on iOS platform.
  • [X.Android] [Android Designer] Setting AlternatingRowTextColor from property grid does not work.
  • [X.Android] [Android Designer] FlexGrid's fontFamily now take effect on design/runtime if setting from properties window.
  • [X.Android] [Android Designer] Inappropriate xaml tags are no longer shown for FlexGrid's borderColor property in description portion of properties window.
  • [XF] Avoids aliasing issue by rounding the width of the star columns on UWP.

Input

Improvements

  • Improved the appearance of FullScreenMode on iOS.
  • Add CloseButtonTextColor/CloseButtonBackgroundColor Properties for C1DropDown on XF/iOS/Android.
  • Add CloseButtonForeground/CloseButtonBackground Properties for C1DropDown on UWP.

Bug Fixes

  • [XF] System.NullReferenceException no longer thrown when navigate back to home page after selecting items from Dynamic AutoComplete on iOS.
  • [XF] Dropdown no longer opens when the alphabet [i.e: unmatched text] is entered into the header portion of control that is bound with Int number.
  • [XF] Set HorizontalTextAlignment does now applies Placeholder text on iOS and UWP.
  • [XF][X.iOS][X.Android] Both CloseButton types 'Cancel' and 'CrossButton' are shown in Editable controls at FullScreenMode.
  • [XF][X.iOS] Close Button does not shown in Calendar Dropdown if ShowCloseButton is not set to True in iPad Simulator/Device.
  • [XF] Color property of CheckBox does not work in Android and UWP.
  • [XF] Foundation.MonoTouchException thrown when navigate back to previous page after navigating Dropdown Page on iOS.
  • [XF] PromptCharacters are no longer encrypted as Password format when set IsPassword to True and Mask property is set in MaskedInput.
  • [XF] Drop down list now correctly disappears when changing visibility to hide control at run time.
  • [X.iOS] Fixed a potential memory leak on iOS platform.
  • [Xamarin.Forms] AutoComplete’s Dropdown now correctly repopulatse full list after clear is pressed on iOS.
  • [XF][X.iOS] CloseButton('Cancel') is shown in FullScreenMode when set IsEditable to False in control on iOS.
  • [XF] ShowClose Button can be shown in all DropdownMode of nonEditable control if changed DropdownMode at Runtime on Android and UWP.
  • [XF] [Autocomplete] DropDown incorrectly positioned when set to ForceAbove and inside ScrollView on iOS
  • [XF] MaskedText Text value (prompt character) can now retrieved when Text value is getting without setting any value on iOS.
  • [XF][X.iOS] System.InvalidOperationException no longer thrown when tap on header portion of controls in Force Above/Below Mode on iOS.
  • [XF] 'IsPassword'property now works in MaskedInput control even set to true.
  • [X.Android] Setting DropDownDirection from property grid does now takes effect when set from designer.
  • [XF][X.iOS] [Combobox]ArgumentNullException no longer occurs if press Return key(from hardware keyboard) after typing input while ItemSource set to Null on iOS.
  • [XF][X.Android] Java.Lang.NoSuchMethodError Exception no longer thrown when run Input control on Android API 17 and API 19 on ANdroid.
  • [XF] ForceAbove DropdownMode does now takes effect on LocalMachine on UWP.

Key: [XF] = Xamarin.Forms, [X.Android] = Xamarin.Android, [X.iOS] = Xamarin.iOS, [X.Mac] = Xamarin.Mac, [Windows Forms] = Windows Forms


Past Releases