ReactiveProperty
ReactiveProperty copied to clipboard
ToReactivePropertySlimAsSynchronized を使って作成した ReactivePropertySlim で前の Value を Dispose する方法について
ToReactivePropertySlimAsSynchronized について質問です。
ToReactivePropertySlimAsSynchronized を使って作成した ReactivePropertySlim で、元となった値の変更に伴い、Value が更新された場合、もともと Value に設定されていたインスタンスを Dispose するためには、どのようにすればいいでしょうか?
DisposePreviousValue() のようにスマートに記述できる方法はありますか?
以下のようなケースを想定しています。
User = model.ToReactivePropertySlimAsSynchronized(
m => m.User,
m => new UserViewModel(m.User), // UserViewModel は IDisposable を想定
vm => vm.Model);
この場合、model の User プロパティが変更されたら、新たに UserViewModel のインスタンスが作成されると思いますが、この時に前のインスタンスを Dispose したいです。
Pairwise した後に Subscribe して OldItem を Dispose する方法などを考えましたが、もう少し簡単に記述できないものとかと思い、質問させていただきました。