Skip to content

Events(事件)

Roslyn 源生成器将经典 CLR 事件(以及可选的 UI 路由事件)转为响应式流。

流类型
Observables.Events.R3R3 Observable<T>
Observables.Events.ReactiveIObservable<T>

请同时引用对应运行时:R3System.Reactive

经典事件

csharp
using Observables.Events.R3;
using R3;

public class ClickSource
{
    public event Action? Click;
}

var stream = new ClickSource().Events().Click;
  • Events()ActionObservable<Unit>;带参数委托 → Observable<T>(或 (object, T) 元组)。
  • EventHandlers() — 面向 EventHandler / (object, T) 形态。

路由事件(Avalonia / WPF)

引用包后会自动导入 buildTransitive/observables.events.props。在项目中启用:

xml
<PropertyGroup>
  <ObservableRoutedEvents>true</ObservableRoutedEvents>
</PropertyGroup>

WPF 还需 <UseWPF>true</UseWPF>

API(R3 命名空间 Observables.Events.R3):

  • 控件上的 RoutedEvents() / RoutedEventHandlers()
  • 父元素上的 AttachedRoutedEvent / AttachedRoutedEventHandler

示例:Observables.Samples.Events.Routed(Avalonia 桌面,仅本地运行;Samples CI 不构建)。

诊断

诊断

示例

基于 MIT 许可证发布。