gpt4 book ai didi

c# - 如何使用带有 Xamarin 的 MVVM 在 XAML 中动态更改图像源

转载 作者:行者123 更新时间:2023-11-30 21:46:45 24 4
gpt4 key购买 nike

我正在尝试更改 ContentPage 上的图像源属性。我使用绑定(bind)上下文来执行此操作。但是,即使我在我的模型 View 中更改源,这也不会更新我 View 中的图像。

UpdateMethod()
{
imageSource1 = imageSource[1];
}

public string ImageSource1
{
get
{
return imageSource1;
}

set
{
imageSource1 = value;
this.Notify("ImageSource1");
}
}

XAML:

<ContentView HorizontalOptions="Center" Grid.Row="0" >
<Image ClassId = "1" Source="{Binding ImageSource1}" BindingContextChanged="Handle_BindingContextChanged">
<Image.GestureRecognizers>
<TapGestureRecognizer Command="{Binding OnTapGestureRecognizerTappedCommand1}" NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
</Image>
</ContentView>

最佳答案

Image 组件接受 ImageSource(FileImageSourceStreamImageSource 等)。幸运的是,ImageSource 类具有针对字符串的隐式运算符,它根据有关格式(url 或路径)的字符串创建自身。检查以下示例:

Xaml

<Image Source="{Binding ImagePath}">
<Image.GestureRecognizers>
<TapGestureRecognizer Command="{Binding ImageTapCommand}" />
</Image.GestureRecognizers>
</Image>

ViewModel.cs:

public class SomeViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

public ICommand ImageTapCommand { get; set; }


private string imagePath;
public string ImagePath
{
get { return imagePath; }
set
{
imagePath = value;
PropertyChanged(this, new PropertyChangedEventArgs("ImagePath"));
}
}

public SomeViewModel()
{
ImageTapCommand = new Command(CmdTapImage);
}


private void CmdTapImage()
{
ImagePath = YourNewImagePath;
}
}

关于c# - 如何使用带有 Xamarin 的 MVVM 在 XAML 中动态更改图像源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com