我正在使用带有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;
}
点按手势可以刷新列表,但我没有收到任何错误,但图像无法缩放
答案 0 :(得分:2)
你应该在ImageScale的setter中使用BaseViewModel的RaisePropertyChanged(或类似的东西 - 通常来自INotifyPropertyChanged的PropertyChanged)。