以下のコードは非常に単純化されています。ビュー モデルが GUI スレッドでのみ発生するイベントを同期できるように、ディスパッチャー コンテキストを抽象化しようとしています。
このパターンには循環参照があります。を作成する他の方法はありますDispatcherObject
か? 私はそれを間違っていますか?
このような他の質問を読んだことがありますが、答えはすべて への参照が含まれているようDispatcherObject
ですViewModel
。これは循環参照の許容される場所ですか?
class ViewModel {
public DispatcherObject Dispatcher { get; set; }
}
class ModelView : UserControl {
ModelView() {
InitializeComponent();
DataContext = new ViewModel { Dispatcher = this };
}
}