Telerik Forums
UI for Xamarin Forum
2 answers
1.1K+ views

Is there a way to programmatic way to cause a RadListView to refresh itself? 

When I navigate back to a page with a RadListView, I need the page to update. I tried overriding OnAppearing to trigger the update.

I have a ObservableCollection<T> in a VM class that inherits from NotifyPropertyChangedBase, and I call OnPropertyChanged on the VM. Even though the data in the ObservableCollection has changed, I can't get the ListView to update.

Any hints?

Gerry
Top achievements
Rank 1
 answered on 03 Mar 2017
15 answers
1.1K+ views

About a little over a year ago, there was a property introduced on the Xamarin Forms ListView called CachingStrategy, which can be set to RecycleElement. Is this built in to the RADListView? I have numerous items (60+) on 4 lists with embedded images (160x160) thumbnails in my app. When I test this on the device with decent memory, I am getting very poor performance (painting slow or not at all with the images). Here is a link to information about this property setting. I tried to set it on the RADListView but got no property found. I am using the grid layout format for the ListView.

 

Some performance tips are here, including use of CachingStrategy...

https://blog.xamarin.com/optimizing-xamarin-forms-apps-for-maximum-performance/

 

I am also using:

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

I trimmed down the images as best I could.

Image List 1 total size, 61 files 900KB, bit depth 8 - 160x160

Image List 2 total size, 37 files 804KB, bit depth 8 160x160

Image List 3 total size, 22 files 344KB (this is the only one that is snappy, I am guessing because it has the fewest elements), bit depth 24, 160x160

Image List 4 total size, 62 files 704KB, bit depth 8, 160x160

 

I also have Java Heap space set to the max 1G in the Android settings, and testing with release mode.

 

Also, I have to set the HeightRequest on the RADListView to something really high, like 1500 to get these images to appear on the list on first appearing.

Here is my XAML:

 

         <telerikDataControls:RadListView HeightRequest="1500" x:Name="RADlistView"<br>                                           BackgroundColor="White"  <br>            SelectedItem="{Binding objSelectedTumor, Mode=TwoWay}" ><br>            <telerikDataControls:RadListView.ItemTemplate><br>              <DataTemplate><br>                <telerikListView:ListViewTemplateCell><br>                  <telerikListView:ListViewTemplateCell.View><br>                    <Grid Padding="10" RowSpacing="5" HorizontalOptions="Center" VerticalOptions="Center"><br>                      <Grid.RowDefinitions><br>                        <RowDefinition Height="6*" /><br>                        <RowDefinition Height="*" /><br>                      </Grid.RowDefinitions><br>                      <Grid.ColumnDefinitions><br>                        <ColumnDefinition Width="*" /><br><br>                      </Grid.ColumnDefinitions><br>                      <!--these options cause System.NullReferenceException: Object reference not set to an instance of an object in iOS. <br>                                      HorizontalOptions="Center"<br>                                      VerticalOptions="Center"--><br>                      <controls:CircleImage Grid.Row="0"<br>                                            Source="{Binding thumb_file_image_name} Converter={StaticResource ImageConverter}"<br>                                            Aspect="AspectFit"<br>                                            IsVisible="{StaticResource showSectionAndroidWin}"<br>                                  <br>                  ><br>                        <controls:CircleImage.WidthRequest><br>                          <OnPlatform x:TypeArguments="x:Double"<br>                            iOS="55"<br>                            Android="55"<br>                            WinPhone="75"<br>                      /><br>                        </controls:CircleImage.WidthRequest><br>                        <controls:CircleImage.HeightRequest><br>                          <OnPlatform x:TypeArguments="x:Double"<br>                            iOS="55"<br>                            Android="55"<br>                            WinPhone="75"<br>                      /><br>                        </controls:CircleImage.HeightRequest><br>                      </controls:CircleImage><br>                      <Image Grid.Row="0"<br>                                            Source="{Binding thumb_file_image_name} Converter={StaticResource ImageConverter}"<br>                                            Aspect="AspectFit"<br>                                            IsVisible="{StaticResource showSectioniOS}"<br>                  ><br>                        <Image.WidthRequest><br>                          <OnPlatform x:TypeArguments="x:Double"<br>                            iOS="55"<br>                            Android="55"<br>                            WinPhone="75"<br>                      /><br>                        </Image.WidthRequest><br>                        <Image.HeightRequest><br>                          <OnPlatform x:TypeArguments="x:Double"<br>                            iOS="55"<br>                            Android="55"<br>                            WinPhone="75"<br>                      /><br>                        </Image.HeightRequest><br>                      </Image><br><br>                      <Grid Grid.Row="1"<br>                           Grid.Column="0"<br>                           RowSpacing="1"<br>                           VerticalOptions="Start"<br>                           HorizontalOptions="Center"<br>                  ><br>                        <Grid.RowDefinitions><br>                          <RowDefinition Height="*" /><br>                        </Grid.RowDefinitions><br>                        <Grid.ColumnDefinitions><br>                          <ColumnDefinition Width="*" /><br>                        </Grid.ColumnDefinitions><br>                        <Label Grid.Row="0"<br>                               Grid.Column="0"<br>                               LineBreakMode="NoWrap"<br>                               BackgroundColor="Transparent"<br>                               HorizontalTextAlignment="Center"<br>                               VerticalTextAlignment="Center"<br>                               Text="{Binding name}"<br>                               TextColor="#81AABC"><br>                          <Label.FontSize><br>                            <OnPlatform x:TypeArguments="x:Double"><br>                              <OnPlatform.WinPhone><br>                                <OnIdiom x:TypeArguments="x:Double"><br>                                  <OnIdiom.Phone>14</OnIdiom.Phone><br>                                </OnIdiom><br>                              </OnPlatform.WinPhone><br>                              <OnPlatform.Android><br>                                <OnIdiom Phone="10"<br>                                         Tablet="12"<br>                                         x:TypeArguments="x:Double" /><br>                              </OnPlatform.Android><br>                              <OnPlatform.iOS><br>                                <OnIdiom Phone="10"<br>                                         Tablet="12"<br>                                         x:TypeArguments="x:Double" /><br>                              </OnPlatform.iOS><br>                            </OnPlatform><br>                          </Label.FontSize><br>                        </Label><br>                      </Grid><br>                    </Grid><br>                  </telerikListView:ListViewTemplateCell.View><br>                </telerikListView:ListViewTemplateCell><br>              </DataTemplate><br>            </telerikDataControls:RadListView.ItemTemplate><br>            <telerikDataControls:RadListView.LayoutDefinition><br>              <telerikListView:ListViewGridLayout x:Name="gridLayout" <br>                                                  VerticalItemSpacing="5" <br>                                                  HorizontalItemSpacing="5" <br>                                                  SpanCount="5" <br>                                                  ItemLength="180" /><br>            </telerikDataControls:RadListView.LayoutDefinition><br>          </telerikDataControls:RadListView>

Any other ideas here?

 

 

 

Rosy Topchiyska
Telerik team
 answered on 02 Mar 2017
1 answer
116 views

Hi,

I found how to customize each item of the calendar thanks to the UpdateVisualsForCell  method.

Concerning the event, i found "EventFont" t change the font, but now i would like to set the event text on 2 lines instead if the default trail truncation.

How can I do that ?

Regards,

Fabien

Todor
Telerik team
 answered on 28 Feb 2017
6 answers
99 views
How to draw the needle on top
Todor
Telerik team
 answered on 28 Feb 2017
5 answers
122 views

Xamarin.Forms.Xaml.XamlParseException: Position 12:8. Type telerikGauges:GaugeLinearAxis not found in xmlns clr-namespace:Telerik.XamarinForms.DataVisualization.Gauges;assembly=Telerik.XamarinForms.DataVisualization

 

We are able to reproduce this on 2 machines now with 2 completely different Xamarin projects. The project runs normally and displays the gauge on Android, that error is only thrown with iOS.

Paul
Top achievements
Rank 1
 answered on 27 Feb 2017
8 answers
194 views

Hi!

I'm trying and using the RadSideDrawer control in my application but I've got an UWP visualization error.

I'm setting a Grid (Layout) as the MainContent for my RadSideDrawer. Now, everything works fine with Android (I didn't get the chance to test it on iOS) but that MainContent is not displaying on UWP.

Is there any known limitation on MainContent use for UWP?

Note that:

- if I set the MainContent as a Label, it displays correctly in UWP too

- I added all the assemblies required (except the "Telerik.UI.Xaml.Primitives" dll, since what I could find in the UWP folder - UI for Xamarin R1 2017 - was the "Telerik.UI.Xaml.Primitives.UWP" dll, which I added instead) and registered all the renderers required

Thanks,

Jacopo

Jacopo
Top achievements
Rank 1
 answered on 24 Feb 2017
2 answers
69 views
Hello. I use listview and calendar  in my project. In debug mode application work. After i build apk in Release mode. After start i have got blink screen (black turn white and return black) again and again.
If I use Nuget for uninstall Telerik library(with delete classes) and build apk - i have correct work application.
Friends what am I doing wrong?
Tnx for answer.
Dima
Top achievements
Rank 1
 answered on 23 Feb 2017
1 answer
101 views

Hi,

I have a Xamarin Forms app with a RadListView where I want the user to be able to select an item in the list (with a tap) so I can navigate to a new page, and also reorder the list (with a long press). How can I get both to work? 

When I have both enabled, the long press causes a selection and navigates to the new page. I need the long press to allow the user to reorder the list.

Thanks,

Ron

Nikolay Demirev
Telerik team
 answered on 23 Feb 2017
3 answers
121 views
 I using Calendar  for Xamarin Forms in my project. Now when user make double click on calendar than opening "map of months". I need change this logic and using self event handler. Is it possible? 
Nikolay Demirev
Telerik team
 answered on 22 Feb 2017
4 answers
310 views

If there is documentation for the gauges I cannot find it.

 

For example, how do you change the value on the gauge that an indicator is pointing at?

 

            gauge.Indicators.Add(new GaugeNeedleIndicator { Value = 50, Offset = 30, Position = GaugeElementPosition.Start });

So that indicator is pointing at 50, how do you change the value?

Lance | Senior Manager Technical Support
Telerik team
 answered on 21 Feb 2017
Top users last month
Jay
Top achievements
Rank 3
Iron
Iron
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
Radek
Top achievements
Rank 2
Iron
Iron
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Richard
Top achievements
Rank 4
Bronze
Bronze
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?