Ну, все, что вам нужно сделать, это создать конвертер примерно так:
public class ConverterAddRemoveImage : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool isAddedToCart = (bool)value;
if (isAddedToCart)
{
return "PositiveImage"; //This will be a string
}
else
{
return "NegativeImage"; //This will be a string
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Затем вам нужно определить его в словаре ресурсов XAML вашей страницы XAML примерно так:
<ContentPage.Resources>
<ResourceDictionary>
<common:ConverterAddRemoveImage x:Key="AddRemoveImage" />
</ResourceDictionary>
</ContentPage.Resources>
Где обычно это пространство имен, в котором присутствует ваш конвертер.
Источник изображения будет выглядеть примерно так:
Source="{Binding IsAddedToCart, Converter={StaticResource AddRemoveImage}}
Где в корзину добавлено свойство bool, похожее на это:
private bool isInCart;
public event PropertyChangedEventHandler PropertyChanged;
public bool IsAddedToCart
{
get
{
return isInCart;
}
set
{
isInCart= value;
NotifyPropertyChanged(nameof(IsAddedToCart));
}
}
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
Примечание: Ваш класс модели должен наследоваться от INotifyPropertyChanged
interface
Теперь, как только вы измените свойство модели bool, оно соответствующим образом изменит изображение.
Возврат Goodluck в случае любых запросов