Hi All,
I have installed a licensed version of Telerik.XamarinFroms.UI and can`t build my project.
SeverityCodeDescriptionProjectFileLineSourceSuppression State
ErrorException while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'Telerik.XamarinForms.SkiaSharp, Version=2017.1.10118.233, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'Telerik.XamarinForms.SkiaSharp.dll'
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)
at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1 assemblies, AssemblyDefinition assembly, Boolean topLevel)
at Xamarin.Android.Tasks.ResolveAssemblies.Execute()IsoPanelApp.DroidC:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets1410Build
I have already increased the HEAP size up to 1G.
I have been trying to remove the reference, but it gives me no result.
Could you please manage this?
Best regards,
Maryan
Hi,
I'm having a hard time wrapping my head around how to handle list view group, sort and filter descriptors in an MVVM fashion.
My scenario is pretty simple: change the grouping, sorting or filtering rules of a list view by clicking a button.
Like so: Button => click => issue View Model command => affect change to the grouping, sorting, filtering rules owned by the view model that are supposedly bound to the list view
But here are some problems:
- The descriptors cannot be bound.
- The descriptors are read-only properties of type ObservableCollection, which means that they are owned by the RadListView instance. The caller cannot set an ObservableCollection owned by the view model.
So here are a couple of ideas I have been playing around with, both pretty bad:
- So one can write descriptors with bound properties to the view model (e.g. the sorting order), and force the list view to reload from the view model (by setting the ItemsSource to a new collection instance of the same items via a binding, which is ugly and causes flickering if the item count is high but couldn't find any other way).
- Or, I'll say presumably because I haven't tested that assumption, modify the descriptors' ObservableCollection on the list view (e.g. remove an alphabetical ascending sort descriptor from the collection and add a descending sort descriptor). This means having a reference to the list around when such change is needed. To avoid coupling the view and the view model, this could happen in the parent view, or page, and be isolated from the view model. Which is not great for reusing those features in different views with the same view model...
Does anyone have real life experience on that matter and could enlighten us on how to approach this?
And question for the Telerik staff: Why aren't the descriptor properties bindable and/or settable? Are they planned to be bindable and/or settable at some point?
Thanks in advance,
Jonathan
Hey guys,
I am currently implementing the Telerik Listview into my Xamarin Forms application.
But I am running into a strange behaviour on iOS. Am using the following IValueConverter
public
class
ByteArrayToImageConverter : IValueConverter
{
public
object
Convert(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
if
(value !=
null
)
{
return
ImageSource.FromStream(() =>
new
MemoryStream((
byte
[])value));
}
return
null
;
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
throw
new
NotImplementedException();
}
}
My Listview looks like this:
<
telerikDataControls:RadListView
x:Name
=
"LVUser "
Grid.Column
=
"0"
Grid.Row
=
"0"
>
<
telerikDataControls:RadListView.LayoutDefinition
>
<
telerikListView:ListViewLinearLayout
ItemLength
=
"60"
/>
</
telerikDataControls:RadListView.LayoutDefinition
>
<
telerikDataControls:RadListView.GroupHeaderTemplate
>
<
DataTemplate
>
<
ContentView
Style
=
"{StaticResource GroupingHeaderBar}"
>
<
Label
Text
=
"{Binding }"
Style
=
"{StaticResource GroupingHeaderLabel}"
/>
</
ContentView
>
</
DataTemplate
>
</
telerikDataControls:RadListView.GroupHeaderTemplate
>
<
telerikDataControls:RadListView.ItemTemplate
>
<
DataTemplate
>
<
telerikListView:ListViewTemplateCell
>
<
telerikListView:ListViewTemplateCell.View
>
<
Grid
Padding
=
"5,1,0,1"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"48"
/>
<
ColumnDefinition
Width
=
"*"
/>
<
ColumnDefinition
Width
=
"10"
/>
</
Grid.ColumnDefinitions
>
<
ffimageloading:CachedImage
Grid.Column
=
"0"
HeightRequest
=
"48"
WidthRequest
=
"48"
x:Name
=
"Picture"
Source
=
"{Binding Picture, Converter={StaticResource ByteToImage}}"
HorizontalOptions
=
"Start"
/>
<
Label
Text
=
"{Binding Id, Converter={StaticResource NameConverter}}"
Style
=
"{StaticResource MainLabel}"
Grid.Column
=
"1"
VerticalOptions
=
"CenterAndExpand"
/>
<
FontAwesome:FontAwesomeIcon
x:Name
=
"LblMore"
Text
=
"ï„…"
Grid.Column
=
"2"
Style
=
"{StaticResource MainLabel}"
VerticalOptions
=
"CenterAndExpand"
HorizontalOptions
=
"EndAndExpand"
/>
</
Grid
>
</
telerikListView:ListViewTemplateCell.View
>
</
telerikListView:ListViewTemplateCell
>
</
DataTemplate
>
</
telerikDataControls:RadListView.ItemTemplate
>
</
telerikDataControls:RadListView
>
This runs perfectly on Android but on iOS the value converter get's called unlimited times. I am using the current stable nuget package.
The "NameConverter" get's called as often as the other one.
Can't I use IValueConverter's?
Best regards
Julian
Hello guys,
I am facing issue with binding the contents to the RadListView.
I am doing it as follows,
<telerikDataControls:RadListView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" x:Name="uiListView" ItemsSource="{Binding Assets}">
<!--'Assets' is the list of asset.-->
<telerikDataControls:RadListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout>
<Grid Padding="10,10,10,0">
<Label Grid.Row="0" Grid.Column="0" Text="{Binding AssetNumber}" FontSize="14" FontAttributes="Bold" LineBreakMode="NoWrap"/>
</Grid>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</telerikDataControls:RadListView.ItemTemplate>
<telerikDataControls:RadListView.SelectedItemStyle>
<telerikListView:ListViewItemStyle BackgroundColor="#88888888"/>
</telerikDataControls:RadListView.SelectedItemStyle>
</telerikDataControls:RadListView>
Hi,
I'm not sure, but I think I have found a bug in the Area Chart component.
The problem is the displaying order of the different series, when you try to stack one them. I successfully achieved it in Android, but I can't find the correct order in iOS.
I have attached two captures. The correct order is the Android version. The add order is the same, but the result is different.
And here is the two code versions.
IOS Code
dailyGraphChart.BeginUpdates();
//Modo stack
var stackInfo =
new
TKChartStackInfo(
new
NSNumber(0), TKChartStackMode.Stack);
//PHOTOVOLTAICS - Yellow
var serieFVE =
new
TKChartAreaSeries(pointsFVE.ToArray());
serieFVE.StackInfo = stackInfo;
serieFVE.Style.Palette =
new
TKChartPalette();
var paletteItemFVE =
new
TKChartPaletteItem();
paletteItemFVE.Fill =
new
TKSolidFill(StyleUtil.GetChartYellow());
serieFVE.Style.Palette.AddPaletteItem(paletteItemFVE);
dailyGraphChart.AddSeries(serieFVE);
//CHARGE - Orange
var serieBatUp =
new
TKChartAreaSeries(pointsBatUp.ToArray());
serieBatUp.StackInfo = stackInfo;
serieBatUp.Style.Palette =
new
TKChartPalette();
var paletteItemBatUp =
new
TKChartPaletteItem();
paletteItemBatUp.Fill =
new
TKSolidFill(StyleUtil.GetChartOrange());
serieBatUp.Style.Palette.AddPaletteItem(paletteItemBatUp);
dailyGraphChart.AddSeries(serieBatUp);
//DISCHARGE - Green
var serieBatDown =
new
TKChartAreaSeries(pointsBatDown.ToArray());
serieBatDown.StackInfo = stackInfo;
serieBatDown.Style.Palette =
new
TKChartPalette();
var paletteItemBatDown =
new
TKChartPaletteItem();
paletteItemBatDown.Fill =
new
TKSolidFill(StyleUtil.GetChartGreen());
serieBatDown.Style.Palette.AddPaletteItem(paletteItemBatDown);
dailyGraphChart.AddSeries(serieBatDown);
//GRID - Blue
var serieGrid =
new
TKChartAreaSeries(pointsGrid.ToArray());
serieGrid.StackInfo = stackInfo;
serieGrid.Style.Palette =
new
TKChartPalette();
var paletteItemGrid =
new
TKChartPaletteItem();
paletteItemGrid.Fill =
new
TKSolidFill(StyleUtil.GetChartBlue());
serieGrid.Style.Palette.AddPaletteItem(paletteItemGrid);
dailyGraphChart.AddSeries(serieGrid);
Android Code
//Initialization
RadCartesianChartView chartView =
new
RadCartesianChartView(v.Context);
ChartPalette customPalette =
new
ChartPalette(chartView.Palette);
AreaSeries EFVAreaSeries =
new
AreaSeries();
EFVAreaSeries.CombineMode = ChartSeriesCombineMode.Stack;
EFVAreaSeries.StackGroupKey = 0;
EFVAreaSeries.CategoryBinding =
new
PowerResultDataBinding (
"PowerType"
);
EFVAreaSeries.ValueBinding =
new
PowerResultDataBinding (
"hour"
);
EFVAreaSeries.Data = (Java.Lang.IIterable)
this
.EFVresults;
CustomizarPaleta (customPalette,ChartPalette.AreaFamily, GetChartYellow (), 0);
EFVAreaSeries.StrokeColor = Color.Black.ToArgb ();
EFVAreaSeries.StrokeThickness = 0.5f;
chartView.Series.Add(EFVAreaSeries);
AreaSeries CargaBAreaSeries =
new
AreaSeries();
CargaBAreaSeries.CombineMode = ChartSeriesCombineMode.Stack;
CargaBAreaSeries.StackGroupKey = 0;
CargaBAreaSeries.CategoryBinding =
new
PowerResultDataBinding (
"PowerType"
);
CargaBAreaSeries.ValueBinding =
new
PowerResultDataBinding (
"hour"
);
CargaBAreaSeries.Data = (Java.Lang.IIterable)
this
.CargaBresults;
CustomizarPaleta (customPalette,ChartPalette.AreaFamily, GetChartOrange (), 1);
CargaBAreaSeries.StrokeColor = Color.Black.ToArgb ();
CargaBAreaSeries.StrokeThickness = 0.5f;
chartView.Series.Add(CargaBAreaSeries);
AreaSeries DescargaAreaSeries =
new
AreaSeries();
DescargaAreaSeries.CombineMode = ChartSeriesCombineMode.Stack;
DescargaAreaSeries.StackGroupKey =0;
DescargaAreaSeries.CategoryBinding =
new
PowerResultDataBinding (
"PowerType"
);
DescargaAreaSeries.ValueBinding =
new
PowerResultDataBinding (
"hour"
);
DescargaAreaSeries.Data = (Java.Lang.IIterable)
this
.DescargaResults;
CustomizarPaleta (customPalette,ChartPalette.AreaFamily, GetChartGreen (), 2);
DescargaAreaSeries.StrokeColor = Color.Black.ToArgb ();
DescargaAreaSeries.StrokeThickness = 0.5f;
chartView.Series.Add(DescargaAreaSeries);
AreaSeries RedAreaSeries =
new
AreaSeries();
RedAreaSeries.CombineMode = ChartSeriesCombineMode.Stack;
RedAreaSeries.StackGroupKey = 0;
RedAreaSeries.CategoryBinding =
new
PowerResultDataBinding (
"PowerType"
);
RedAreaSeries.ValueBinding =
new
PowerResultDataBinding (
"hour"
);
RedAreaSeries.Data = (Java.Lang.IIterable)
this
.RedResults;
CustomizarPaleta (customPalette,ChartPalette.AreaFamily, GetChartBlue (), 3);
RedAreaSeries.StrokeColor = Color.Black.ToArgb ();
RedAreaSeries.StrokeThickness = 0.5f;
chartView.Series.Add(RedAreaSeries);
AreaSeries InyecAreaSeries =
new
AreaSeries();
InyecAreaSeries.CombineMode = ChartSeriesCombineMode.Stack;
InyecAreaSeries.StackGroupKey = 0;
InyecAreaSeries.CategoryBinding =
new
PowerResultDataBinding (
"PowerType"
);
InyecAreaSeries.ValueBinding =
new
PowerResultDataBinding (
"hour"
);
InyecAreaSeries.Data = (Java.Lang.IIterable)
this
.Inyecresults;
CustomizarPaleta (customPalette,ChartPalette.AreaFamily, GetChartRed(), 4);
InyecAreaSeries.StrokeColor = Color.Black.ToArgb ();
InyecAreaSeries.StrokeThickness = 0.5f;
chartView.Series.Add(InyecAreaSeries);
Hi,
The Xamarin Forms controls no longer appear in nuget packages to install, even when you select pre-release.
Is there a new server or something? I'm using https://nuget.telerik.com/nuget
Thanks,
Norman.
Hello, I need to set the horizontal date axis
to display either 6 hours ticks or date ticks.
The label format should change like in the attached file.
We want to set the zoom behavior to zoom-in to 15 days
Appreciate Help
Hello
We use ChartPanAndZoomBehavior
After we Add Annotation or Series the Zoom Is Reset
How can we avoid this?
Thanks
Hi,
Is it possible to have a master detail page under the side drawer main content?