mvvm - Xamarin Forms - 绑定(bind)图像比例

标签 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>

这是我的 View 模型:
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;
    }

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

最佳答案

您应该在 ImageScale 的 setter 中使用 BaseViewModel 的 RaisePropertyChanged(或类似的想法 - 通常来自 INotifyPropertyChanged 的​​ PropertyChanged)。

关于mvvm - Xamarin Forms - 绑定(bind)图像比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48270836/

相关文章:

mvvm - 为什么 Xamarin 跨平台使用 MVVM

wpf - 从 WPF 中的 ViewModel 类(MVVM 模式)更新 UI

c# - 使用 MVVM 处理 HTTP GET 请求

templates - VS2019 + Xamarin.Forms = UWP/EXE 被删除?

xamarin - Xamarin iOS 渲染器中使用的 "if (Control == null)"部分是什么?

xaml - ui没有实时更新

c# - WPF 中 GridViewDataColumn.CellEditTemplate 上的 MVVM 嵌套绑定(bind)

c# - 如果字典填充较晚,则绑定(bind)无法与字典一起使用

xaml - 如何使用 Xamarin.Forms xaml 编辑器预览 ListView

c# - 如何正确使用 async/await 显示 Xamarin Forms ActivityIndi​​cator