バインディングのBitmapImageデータは、私はシングルトンのBitmapImageを持っていると私は私のXAMLビューにバインドしようとしていると私が得た:WPF - シングルトン
The calling thread cannot access this object because it is owned by another thread
ここに私のコード:
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(fullFilePath, UriKind.Absolute);
bitmap.EndInit();
MySingleton.Instance.image = bitmap;
マイシングルトンを:
private BitmapImage _image;
public BitmapImage image
{
get { return _image; }
set
{
_image = value;
PropertyChanged(this, new PropertyChangedEventArgs(nameof(image)));
}
}
そして、私のXAML:
<Image Source="{Binding image, Source={x:Static module:MySingleton.Instance}}" Name="TestImage" HorizontalAlignment="Center" Height="Auto" VerticalAlignment="Center" Width="Auto"></Image>
は私がbitmap.Freeze();
を試みたが、エラーが発生しました:
Freezable cannot be frozen
それはmeanlessだかない場合、私は知らないが、私はのWebSocketのonMessageイベントでビットマップをインスタンス化します。
'ローカルファイルパスをfullFilePath'ていますか? – Clemens
@Clemensいいえ、私はバインドせずにコードをテストし、 "Application.Current.Dispatcher.Invoke(()"とLupu Silviuによって与えられていますが、動作していますが、なぜバインディングが機能していないのかまだわかりませんでした。 – Safe
ビットマップの 'CacheOption'を' EndInit() 'の前に' BitmapCacheOption.OnLoad'に設定しようとしてください。 – dymanoid