ReactiveProperty icon indicating copy to clipboard operation
ReactiveProperty copied to clipboard

ToReactivePropertySlimAsSynchronized を使って作成した ReactivePropertySlim で前の Value を Dispose する方法について

Open kbfriston3 opened this issue 1 month ago • 0 comments

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 する方法などを考えましたが、もう少し簡単に記述できないものとかと思い、質問させていただきました。

kbfriston3 avatar Nov 28 '25 05:11 kbfriston3