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

stringWPF には からまたはUriへの型変換が組み込まれているためImageSource、次のように XAML でイメージ ソース バインディングを宣言するだけです。

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

もちろん、バインディングのソース オブジェクトを設定することも必要です。バインディング宣言で明示的に指定しない場合DataContextは、Image コントロール (またはそのコンテナー) の をContactインスタンスに設定する必要があります。

于 2013-11-06T13:34:36.123 に答える