Hi Rosy,
Thanks for that feedback, regarding MVVM, I'm now using David Britsh's pluggin for behaviors with works nicely with RadGrid.
https://www.nuget.org/packages/Behaviors.Forms/
<
custom:CustomRadListView
BackgroundColor
=
"#ffffff"
x:Name
=
"ListviewFav"
IsItemSwipeEnabled
=
"True"
SwipeThreshold
=
"5"
SwipeOffset
=
"4000"
ItemsSource
=
"{Binding Favourites}"
SelectionMode
=
"Single"
>
<
telerikDataControls:RadListView.Behaviors
>
<
b:EventHandlerBehavior
EventName
=
"ItemTapped"
>
<
b:InvokeCommandAction
Command
=
"{Binding SelectFavCommand}"
Converter
=
"{StaticResource SelectedltemArgsToBinding}"
/>
</
b:EventHandlerBehavior
>
<
b:EventHandlerBehavior
EventName
=
"ItemSwipeCompleted"
>
<
b:InvokeMethodAction
TargetObject
=
"{Binding Source={x:Reference FavView}}"
MethodName
=
"OnItemSwipeCompleted"
/>
</
b:EventHandlerBehavior
>
</
telerikDataControls:RadListView.Behaviors
>
<
telerikDataControls:RadListView.ItemTemplate
>
<
DataTemplate
>
You need some converters too.
using
System;
using
System.Globalization;
using
Telerik.XamarinForms.DataControls.ListView;
using
Xamarin.Forms;
namespace
Foobar.Converters
{
public
class
RadSelectedltemEventArgsConverter: IValueConverter
{
public
object
Convert(
object
value, Type targetType,
object
parameter, CultureInfo culture)
{
var eventArgs = value
as
ItemTapEventArgs;
return
eventArgs !=
null
? eventArgs.Item :
null
;
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, CultureInfo culture)
{
throw
new
NotImplementedException();
}
}
}
using
System;
using
System.Globalization;
using
Telerik.XamarinForms.DataControls.ListView;
using
Xamarin.Forms;
namespace
Foobar.Converters
{
public
class
RadSwipeCompleteltemEventArgsConverter: IValueConverter
{
public
object
Convert(
object
value, Type targetType,
object
parameter, CultureInfo culture)
{
var eventArgs = value
as
ItemSwipeCompletedEventArgs;
return
eventArgs !=
null
? eventArgs.Item :
null
;
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, CultureInfo culture)
{
throw
new
NotImplementedException();
}
}
}
Seems to work well, as you mention before, you just have to remember to clear the behavior collection when the page is popped.
Thought I'd post in case anyone else is looking into this.