gpt4 book ai didi

.net - Reactive UI 中的各种 WhenAny 方法有什么区别

转载 作者:行者123 更新时间:2023-12-03 10:38:52 26 4
gpt4 key购买 nike

Reactive UI 中有几种扩展方法可用于获取属性更改的 observable。

我想我明白 WhenAnyWhenAnyValue . WhenAny用于一系列属性更改通知,您希望其中的对象和属性发生更改的元数据,而 WhenAnyValue当你真的只想要改变值的流时。

首先,这是一个准确的评估吗?

怎么样WhenAnyDynamic , WhenAnyObservable , 和 ObservableForProperty ?我真的无法弄清楚它们的用途,或者它们与前两个有何不同。它们都是供公众使用的吗?他们的目的是什么?

最佳答案

I think I understand WhenAny and WhenAnyValue.



让我通过代码来演示:
// These two statements are 100% identical, but the latter looks nicer.
this.WhenAny(x => x.Foo.Bar, x => x.Value)

this.WhenAnyValue(x => x.Foo.Bar);

What about WhenAnyDynamic, WhenAnyObservable, and ObservableForProperty?


WhenAnyDynamic就像 WhenAny 但是当你想要观察的东西不是常量时——你可能不需要它,但 RxUI 内部需要。
WhenAnyObservable让你得到一个 Observable,但不必担心对象在你背后改变。例如
this.SomeChildViewModel.MyCoolCommand
.Subscribe(x => Console.WriteLine("Clicked!"));

// Later...
this.SomeChildViewModel = new SomeChildViewModel();

// (Hey, why doesn't my Clicked! handler show up anymore! I'm still subscribed
// to the old object but it's super not obvious that's what happened)

相对
this.WhenAnyObservable(x => x.MyCoolCommand).
.Subscribe(x => Console.WriteLine("Clicked!"));

// Later...
this.SomeChildViewModel = new SomeChildViewModel();

// Cool, everything still works.

WhenAnyObservable 在 中非常有用查看 订阅命令。
ObservableForProperty就像 WhenAny 但在最初订阅时不会触发。您可能应该忽略它,它实际上只是出于兼容性原因而存在的 WhenAny 的构建块。

关于.net - Reactive UI 中的各种 WhenAny 方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com