1

这是我的代码

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);
      }
    }

视图模型

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

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

4

1 回答 1

3

string由于 WPF 具有 from或Urito的内置类型转换ImageSource,您可以简单地在 XAML 中声明您的 Image Source 绑定,如下所示:

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

当然也有必要设置绑定的源对象。如果您没有在绑定声明中明确指定它,则DataContext必须将 Image 控件(或其容器)的 设置为Contact实例。

于 2013-11-06T13:34:36.123 回答