In my App, I am using an MVXValueConverter in Android and iOS for creating a single text with Multiple colors.
Now I want to get some Action into my View Model when I click on specific text from whole line.
Below is the code of my MVXConverter.
Android Converter Code
public class FreeShippingConverter : MvxValueConverter<string, SpannableString>
{
protected override SpannableString Convert(string value, Type targetType, object parameter, CultureInfo culture)
{
var result = new SpannableString(value);
var startIndex = value.IndexOf(Strings.Perks_Members, StringComparison.InvariantCultureIgnoreCase);
if (startIndex < 0)
{
return result;
}
result.SetSpan(new StyleSpan(TypefaceStyle.Normal), startIndex, startIndex + Strings.Perks_Members.Length, 0);
result.SetSpan(new ForegroundColorSpan(Colors.Bluescale1.ToNativeColor()), startIndex, startIndex + Strings.Perks_Members.Length, 0);
return result;
}
}
iOS Converter Code
public class FreeShippingConverter : MvxValueConverter<string, NSAttributedString>
{
protected override NSAttributedString Convert(string value, Type targetType, object parameter, CultureInfo culture)
{
var result = new NSMutableAttributedString(value);
var startIndex = value.IndexOf(Strings.Perks_Members, StringComparison.InvariantCultureIgnoreCase);
if (startIndex < 0)
{
return result;
}
var range = new NSRange(startIndex, Strings.Perks_Members.Length);
result.AddAttribute(UIStringAttributeKey.Font, TextStyle.B2.Font(), range);
result.AddAttribute(UIStringAttributeKey.ForegroundColor, Colors.PrimaryDarkBlue.ToNativeColor(), range);
return result;
}
}
Now I want to have click Action only when I click on the result text meaning some part only. How can I achieve this?
I researched and found that it is possible through ICommand but I am not aware of How to Bind and get action through value Converter to my ViewModel class.