gpt4 book ai didi

c# - 使用 wpf mvvm 在运行时更改 URI 时,图像未在 UI 中更新

转载 作者:行者123 更新时间:2023-12-03 10:23:22 24 4
gpt4 key购买 nike

这是我的代码

XAML:

<Image x:Name="profileimage" Grid.Row="0" Grid.Column="0" Style="{StaticResource ProfileViewListboxImagestyle}" Margin="0,10,2,10">
<Image.Source>
<BitmapImage UriSource="{Binding ImageUri}"></BitmapImage>
</Image.Source>
</Image>

模型:
class Contact
private Uri _imageUri;
public Uri ImageUri
{
get
{
return _imageUri;
}
set
{
base.Set<Uri>(() => ImageUri, ref _imageUri, value);

RaisePropertyChanged(()=>ImageUri);
}
}

View 模型
UpdateImage(Uri uri)
{
Dispatcher.CurrentDispatcher.BeginInvoke(() =>
{
Contact.ImageUri=uri; //This is not called from UI thread.so i used dispatcher.
});
}

我不知道我犯了什么错误,但是在运行它时我没有收到任何错误。
图像未在 UI 中更新,但值已更新。
问题是什么?

最佳答案

由于 WPF 具有来自 string 的内置类型转换或 UriImageSource ,您可以像这样在 XAML 中简单地声明您的 Image Source 绑定(bind):

<Image ... Source="{Binding ImageUri}" />

当然也有必要设置 source object of the binding .如果您没有在绑定(bind)声明中明确指定它, DataContext Image 控件(或其容器)的值必须设置为 Contact实例。

关于c# - 使用 wpf mvvm 在运行时更改 URI 时,图像未在 UI 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19813378/

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