Xamarin表格 - 绑定图像比例

时间:2018-01-15 21:22:23

标签: mvvm xamarin.forms

我正在使用带有MVVM模式的Xamarin Forms。我想在触发轻击手势命令时缩小图像,等待几毫秒并将其缩放回全尺寸以提供按钮效果。

这是我的XAML代码:

<Image 
                x:Name="RefreshImage" 
                WidthRequest="24" 
                Scale="{Binding ImageScale, Mode=TwoWay}"
                Source="{local:ImageResource MyProject.Resources.refresh.png}" 
                VerticalOptions="Center">
                <Image.GestureRecognizers>
                    <TapGestureRecognizer Command="{Binding RefreshTapCommand, Mode=TwoWay}" CommandParameter="RefreshImage" />
                </Image.GestureRecognizers>
</Image>

这是我的视图模型:

public class AlertListViewModel : BaseViewModel
{
    public ICommand RefreshTapCommand { get; private set; }
    public double ImageScale { get; set; }       
    public AlertListViewModel()
    {
        RefreshList();

        items.CollectionChanged += this.OnCollectionChanged;

        RefreshTapCommand = new Command(OnTapRefresh);
        ImageScale = 1;
    }

    async void OnTapRefresh(Object obj)
    {
        ImageScale = 0.8;
        await ExecuteRefreshCommand();
        await Task.Delay(100);
        ImageScale = 1;
    }

点按手势可以刷新列表,但我没有收到任何错误,但图像无法缩放

1 个答案:

答案 0 :(得分:2)

你应该在ImageScale的setter中使用BaseViewModel的RaisePropertyChanged(或类似的东西 - 通常来自INotifyPropertyChanged的PropertyChanged)。