在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → ReactiveProperty在Reactive Extensions下提供了MVVM和异步支持功能

ReactiveProperty在Reactive Extensions下提供了MVVM和异步支持功能

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:6.59M
  • 下载次数:0
  • 浏览次数:8
  • 发布时间:2024-05-05
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】

ReactiveProperty提供了在Reactive Extensions下的MVVM和异步支持功能。目标框架是.NET 6.0 、.NET Framework 4.7.2和.NET Standard 2.0。

注意:如果您正在开发新应用程序,请考虑使用R3而不是ReactiveProperty。由原作者重新设计的R3与当前的.NET生态系统保持一致,并提供了大多数ReactiveProperty中的功能。

概念

ReactiveProperty是一个非常强大而简单的库。

这个示例应用的ViewModel代码如下:

public class MainPageViewModel
{
    public ReactivePropertySlim<string> Input { get; }
    public ReadOnlyReactivePropertySlim<string> Output { get; }
    public MainPageViewModel()
    {
        Input = new ReactivePropertySlim<string>("");
        Output = Input
            .Delay(TimeSpan.FromSeconds(1))
            .Select(x => x.ToUpper())
            .ObserveOnDispatcher()
            .ToReadOnlyReactivePropertySlim();
    }
}



【实例截图】

【核心代码】
文件清单
└── ReactiveProperty-5d8af227dd70af09a4d7205470a11bce3976a4ff
    ├── Assets
    │   ├── Asset.pptx
    │   ├── (JPN)Session_SilverlightSquareInTokyo4.pptx
    │   ├── ReactivePropertyIcon_100x100.png
    │   └── ReactivePropertyIcon_511x511.png
    ├── Benchmark
    │   ├── Benchmark.Current
    │   │   ├── BasicUsages.v9.cs
    │   │   └── Benchmark.Current.csproj
    │   ├── Benchmark.V6
    │   │   ├── BasicUsages.cs
    │   │   ├── Benchmark.V6.csproj
    │   │   └── Program.cs
    │   ├── Benchmark.V7
    │   │   └── Benchmark.V7.csproj
    │   ├── FromEventBenchmark.Rp
    │   │   └── FromEventBenchmark.Rp.csproj
    │   ├── FromEventBenchmark.Rx
    │   │   ├── FromEventBenchmark.Rx.csproj
    │   │   └── Program.cs
    │   └── ReactiveProperty-Benchmark.sln
    ├── docs
    │   ├── deploy.ps1
    │   ├── deploy.sh
    │   ├── docs
    │   │   ├── advanced
    │   │   │   ├── awaitable.md
    │   │   │   ├── images
    │   │   │   │   ├── create-project.png
    │   │   │   │   └── hello-world.gif
    │   │   │   ├── thread.md
    │   │   │   └── work-with-other-mvvm-framwork.md
    │   │   ├── features
    │   │   │   ├── Collections.md
    │   │   │   ├── Commanding.md
    │   │   │   ├── Event-transfer-to-ViewModel-from-View.md
    │   │   │   ├── Extension-methods.md
    │   │   │   ├── images
    │   │   │   │   ├── asyncreactivecommand-from-iobool.gif
    │   │   │   │   ├── asyncreactivecommand-heavyprocess.gif
    │   │   │   │   ├── asyncreactivecommand-shared-source.gif
    │   │   │   │   ├── asyncreactivecommand-share-state.gif
    │   │   │   │   ├── collections-filtered-collection.gif
    │   │   │   │   ├── collections-reactivecollection-basic-usage.gif
    │   │   │   │   ├── collections-reactivecollection-collection-operations.gif
    │   │   │   │   ├── collections-reactivecollection-readonly-collection.gif
    │   │   │   │   ├── collections-reactivecollection-readonly-collection-reset.gif
    │   │   │   │   ├── event-to-reactivexxx.gif
    │   │   │   │   ├── haserrors-handling2.png
    │   │   │   │   ├── haserrors-handling.png
    │   │   │   │   ├── reactivecommand-disable5secs.gif
    │   │   │   │   ├── reactivecommand-firstexample.gif
    │   │   │   │   ├── validation-errormessage.png
    │   │   │   │   ├── work-together-with-poco-two-way-synchronization-and-convert.gif
    │   │   │   │   ├── work-together-with-poco-two-way-synchronization-and-ignoreValidationError.gif
    │   │   │   │   ├── work-together-with-poco-two-way-synchronization.gif
    │   │   │   │   └── wpf-validation.png
    │   │   │   ├── Notifiers.md
    │   │   │   ├── ReactiveProperty.md
    │   │   │   ├── ReactivePropertySlim.md
    │   │   │   └── Work-together-with-plane-model-layer-objects.md
    │   │   ├── getting-started
    │   │   │   ├── add-snippets.md
    │   │   │   ├── avalonia.md
    │   │   │   ├── blazor.md
    │   │   │   ├── images
    │   │   │   │   ├── blazor-helloworld.png
    │   │   │   │   ├── launch-avalonia-app.gif
    │   │   │   │   ├── launch-uwp-app.gif
    │   │   │   │   ├── launch-wpf-app.gif
    │   │   │   │   ├── launch-xf-app-android.gif
    │   │   │   │   ├── launch-xf-app-uwp.gif
    │   │   │   │   ├── unoandroid-getting-started.gif
    │   │   │   │   ├── unouwp-getting-started.gif
    │   │   │   │   ├── uwp-target-version.png
    │   │   │   │   ├── wasm-getting-started.gif
    │   │   │   │   └── xf-create-project.png
    │   │   │   ├── uno-platform.md
    │   │   │   ├── uwp.md
    │   │   │   ├── wpf.md
    │   │   │   └── xf.md
    │   │   ├── images
    │   │   │   ├── launch-uwp-app.gif
    │   │   │   ├── rpsummary.png
    │   │   │   ├── sampleapp.gif
    │   │   │   ├── todoapp.gif
    │   │   │   └── todomvvm.png
    │   │   ├── README.md
    │   │   └── samples.md
    │   ├── package.json
    │   └── package-lock.json
    ├── Images
    │   ├── basics.png
    │   ├── delay.png
    │   ├── error1.png
    │   ├── error2.png
    │   ├── EventToReactiveCommand1.PNG
    │   ├── EventToReactiveCommand2.PNG
    │   ├── eventtoreactive.PNG
    │   ├── helloworld-winui.gif
    │   ├── installrp.PNG
    │   ├── interval.png
    │   ├── launch-uwp-app.gif
    │   ├── reactivecommand1.png
    │   ├── reactivecommand2.png
    │   ├── removenugetpackage.png
    │   ├── removewinandwpproject.PNG
    │   ├── rpsummary.png
    │   ├── synchronize.png
    │   ├── targetnetplatformstandard.png
    │   ├── todomvvm.png
    │   ├── upgradexf.png
    │   ├── validation.PNG
    │   ├── xf-howtouserp-createproject-en.png
    │   └── xf-howtouserp-createproject.png
    ├── LICENSE.txt
    ├── ReactiveProperty-Samples.sln
    ├── ReactiveProperty.sln
    ├── README-Android.md
    ├── README-ja.md
    ├── README.md
    ├── ReleaseNote-ja.md
    ├── ReleaseNote.md
    ├── Samples
    │   ├── Blazor
    │   │   ├── BlazorSample
    │   │   │   ├── BlazorSample
    │   │   │   │   ├── appsettings.Development.json
    │   │   │   │   ├── appsettings.json
    │   │   │   │   ├── BlazorSample.csproj
    │   │   │   │   ├── Components
    │   │   │   │   │   ├── App.razor
    │   │   │   │   │   ├── _Imports.razor
    │   │   │   │   │   ├── Layout
    │   │   │   │   │   │   ├── MainLayout.razor
    │   │   │   │   │   │   ├── MainLayout.razor.css
    │   │   │   │   │   │   ├── NavMenu.razor
    │   │   │   │   │   │   └── NavMenu.razor.css
    │   │   │   │   │   ├── Pages
    │   │   │   │   │   │   ├── Error.razor
    │   │   │   │   │   │   ├── Home.razor
    │   │   │   │   │   │   ├── ServerCounter.razor
    │   │   │   │   │   │   ├── ServerHelloWorld.razor
    │   │   │   │   │   │   └── SSRHelloWorld.razor
    │   │   │   │   │   └── Routes.razor
    │   │   │   │   ├── Program.cs
    │   │   │   │   ├── Properties
    │   │   │   │   │   └── launchSettings.json
    │   │   │   │   └── wwwroot
    │   │   │   │       ├── app.css
    │   │   │   │       ├── bootstrap
    │   │   │   │       │   ├── bootstrap.min.css
    │   │   │   │       │   └── bootstrap.min.css.map
    │   │   │   │       └── favicon.png
    │   │   │   └── BlazorSample.Client
    │   │   │       ├── BlazorSample.Client.csproj
    │   │   │       ├── Components
    │   │   │       │   ├── Counter.razor
    │   │   │       │   ├── HelloWorld.razor
    │   │   │       │   └── Pages
    │   │   │       │       ├── WasmCounter.razor
    │   │   │       │       └── WasmHelloWorld.razor
    │   │   │       ├── _Imports.razor
    │   │   │       ├── Program.cs
    │   │   │       ├── ViewModels
    │   │   │       │   ├── CounterViewModel.cs
    │   │   │       │   ├── HelloWorldViewModel.cs
    │   │   │       │   └── ValidationViewModel.cs
    │   │   │       └── wwwroot
    │   │   │           ├── appsettings.Development.json
    │   │   │           └── appsettings.json
    │   │   └── BlazorSample.Shared
    │   │       ├── BlazorSample.Shared.csproj
    │   │       ├── _Imports.razor
    │   │       ├── Pages
    │   │       │   ├── Counter.razor
    │   │       │   └── Index.razor
    │   │       └── ViewModels
    │   │           ├── CounterViewModel.cs
    │   │           ├── HelloWorldViewModel.cs
    │   │           └── ValidationViewModel.cs
    │   ├── MultiUIThreadApp
    │   │   ├── App.xaml
    │   │   ├── App.xaml.cs
    │   │   ├── AssemblyInfo.cs
    │   │   ├── Models
    │   │   │   ├── GuidList.cs
    │   │   │   └── Item.cs
    │   │   ├── MultiUIThreadApp.csproj
    │   │   ├── ViewModels
    │   │   │   ├── ListBoxWindowViewModel.cs
    │   │   │   ├── MainWindowViewModel.cs
    │   │   │   └── ViewModelBase.cs
    │   │   └── Views
    │   │       ├── ListBoxWindow.xaml
    │   │       ├── ListBoxWindow.xaml.cs
    │   │       ├── MainWindow.xaml
    │   │       └── MainWindow.xaml.cs
    │   ├── ReactivePropertyCoreSample.WPF
    │   │   ├── App.xaml
    │   │   ├── App.xaml.cs
    │   │   ├── AssemblyInfo.cs
    │   │   ├── Behaviors
    │   │   │   └── DisposeViewModelWhenClosedBehavior.cs
    │   │   ├── Messages
    │   │   │   └── ShowWindowMessage.cs
    │   │   ├── Models
    │   │   │   ├── BindableBase.cs
    │   │   │   └── Poco.cs
    │   │   ├── ReactivePropertyCoreSample.WPF.csproj
    │   │   ├── ViewModels
    │   │   │   ├── BasicUsagesWindowViewModel.cs
    │   │   │   ├── CreateFromPocoViewModel.cs
    │   │   │   ├── MainWindowViewModel.cs
    │   │   │   ├── ReactiveCommandViewModel.cs
    │   │   │   ├── ValidationViewModel.cs
    │   │   │   └── ViewModelBase.cs
    │   │   └── Views
    │   │       ├── BasicUsagesWindow.xaml
    │   │       ├── BasicUsagesWindow.xaml.cs
    │   │       ├── CreateFromPocoWindow.xaml
    │   │       ├── CreateFromPocoWindow.xaml.cs
    │   │       ├── MainWindow.xaml
    │   │       ├── MainWindow.xaml.cs
    │   │       ├── ReactiveCommandWindow.xaml
    │   │       ├── ReactiveCommandWindow.xaml.cs
    │   │       ├── ValidationWindow.xaml
    │   │       └── ValidationWindow.xaml.cs
    │   ├── ReactivePropertySamples.Shared
    │   │   ├── Models
    │   │   │   ├── BindableBase.cs
    │   │   │   ├── CollectionsModel.cs
    │   │   │   └── Poco.cs
    │   │   ├── ReactivePropertySamples.Shared.csproj
    │   │   └── ViewModels
    │   │       ├── BasicUsagesViewModel.cs
    │   │       ├── CollectionsViewModel.cs
    │   │       ├── CreateFromPocoViewModel.cs
    │   │       ├── EventToReactiveViewModel.cs
    │   │       ├── ReactiveCommandViewModel.cs
    │   │       ├── ValidationViewModel.cs
    │   │       └── ViewModelBase.cs
    │   ├── ReactivePropertySamples.WPF
    │   │   ├── App.xaml
    │   │   ├── App.xaml.cs
    │   │   ├── AssemblyInfo.cs
    │   │   ├── Behaviors
    │   │   │   └── DisposeViewModelWhenClosedBehavior.cs
    │   │   ├── Converters
    │   │   │   ├── MouseEventConverter.cs
    │   │   │   └── OpenFileConverter.cs
    │   │   ├── ReactivePropertySamples.WPF.csproj
    │   │   └── Views
    │   │       ├── BasicUsagesWindow.xaml
    │   │       ├── BasicUsagesWindow.xaml.cs
    │   │       ├── CollectionsWindow.xaml
    │   │       ├── CollectionsWindow.xaml.cs
    │   │       ├── CreateFromPocoWindow.xaml
    │   │       ├── CreateFromPocoWindow.xaml.cs
    │   │       ├── EventToReactiveWindow.xaml
    │   │       ├── EventToReactiveWindow.xaml.cs
    │   │       ├── MainWindow.xaml
    │   │       ├── MainWindow.xaml.cs
    │   │       ├── ReactiveCommandWindow.xaml
    │   │       ├── ReactiveCommandWindow.xaml.cs
    │   │       ├── ValidationWindow.xaml
    │   │       └── ValidationWindow.xaml.cs
    │   ├── Reactive.Todo
    │   │   ├── App.xaml
    │   │   ├── App.xaml.cs
    │   │   ├── Reactive.Todo.csproj
    │   │   ├── ViewModels
    │   │   │   └── MainWindowViewModel.cs
    │   │   └── Views
    │   │       ├── MainWindow.xaml
    │   │       └── MainWindow.xaml.cs
    │   └── Reactive.Todo.Main
    │       ├── Converters
    │       │   ├── BooleanToTextDecorationCollectionConverter.cs
    │       │   ├── EnterKeyEventFilter.cs
    │       │   └── TargetViewTypeToThicknessConverter.cs
    │       ├── Events
    │       │   └── TargetViewChangedEvent.cs
    │       ├── MainModule.cs
    │       ├── Models
    │       │   ├── TodoApp.cs
    │       │   └── TodoItem.cs
    │       ├── Reactive.Todo.Main.csproj
    │       ├── ViewModels
    │       │   ├── CommandsViewModel.cs
    │       │   ├── InputViewModel.cs
    │       │   ├── TodoItemsViewModel.cs
    │       │   └── ViewModelBase.cs
    │       └── Views
    │           ├── CommandsView.xaml
    │           ├── CommandsView.xaml.cs
    │           ├── InputView.xaml
    │           ├── InputView.xaml.cs
    │           ├── TodoItemsView.xaml
    │           └── TodoItemsView.xaml.cs
    ├── Snippet
    │   ├── csharp5
    │   │   ├── AsyncReactiveCommandGeneric.snippet
    │   │   ├── AsyncReactiveCommand.snippet
    │   │   ├── ReactiveCollection.snippet
    │   │   ├── ReactiveCommandGeneric.snippet
    │   │   ├── ReactiveCommand.snippet
    │   │   ├── ReactivePropertySlim.snippet
    │   │   ├── ReactiveProperty.snippet
    │   │   ├── ReadOnlyReactiveCollection.snippet
    │   │   ├── ReadOnlyReactivePropertySlim.snippet
    │   │   └── ReadOnlyReactiveProperty.snippet
    │   └── csharp6
    │       ├── AsyncReactiveCommandGeneric.snippet
    │       ├── AsyncReactiveCommand.snippet
    │       ├── ReactiveCollection.snippet
    │       ├── ReactiveCommandGeneric.snippet
    │       ├── ReactiveCommand.snippet
    │       ├── ReactivePropertySlim.snippet
    │       ├── ReactiveProperty.snippet
    │       ├── ReadOnlyReactiveCollection.snippet
    │       ├── ReadOnlyReactivePropertySlim.snippet
    │       └── ReadOnlyReactiveProperty.snippet
    ├── Source
    │   ├── Directory.Build.props
    │   ├── ReactiveProperty.Core
    │   │   ├── AsyncReactiveCommand.cs
    │   │   ├── Disposables
    │   │   │   └── CompositeDisposable.cs
    │   │   ├── Extensions
    │   │   │   ├── IDisposableExtensions.cs
    │   │   │   └── INotifyPropertyChangedExtensions.cs
    │   │   ├── IHasErrors.cs
    │   │   ├── Internals
    │   │   │   ├── AccessorCache.cs
    │   │   │   ├── DelegateDisposable.cs
    │   │   │   ├── DelegateObserver.cs
    │   │   │   ├── Disposable.cs
    │   │   │   ├── ExpressionTreeUtils.cs
    │   │   │   ├── ImmutableList.cs
    │   │   │   ├── InternalSubject.cs
    │   │   │   ├── InternalVisibleTo.cs
    │   │   │   ├── IObserverLinkedList.cs
    │   │   │   ├── NestedPropertyObservable.cs
    │   │   │   ├── ObserverNode.cs
    │   │   │   ├── PropertyChangedObservable.cs
    │   │   │   ├── PropertyObservable.cs
    │   │   │   ├── PropertyPathNode.cs
    │   │   │   ├── SimplePropertyObservable.cs
    │   │   │   └── SingletonPropertyChangedEventArgs.cs
    │   │   ├── IReactiveProperty.cs
    │   │   ├── IReadOnlyReactiveProperty.cs
    │   │   ├── key.snk
    │   │   ├── Notifiers
    │   │   │   ├── BooleanNotifier.cs
    │   │   │   ├── BusyNotifier.cs
    │   │   │   ├── CountNotifier.cs
    │   │   │   └── MessageBroker.cs
    │   │   ├── ReactiveCommandSlim.cs
    │   │   ├── ReactiveProperty.Core.csproj
    │   │   ├── ReactivePropertyMode.cs
    │   │   ├── ReactivePropertySlim.cs
    │   │   ├── TinyLinq
    │   │   │   └── ObservableExtensions.cs
    │   │   └── ValidatableReactiveProperty.cs
    │   ├── ReactiveProperty.NETStandard
    │   │   ├── Binding
    │   │   │   ├── RxBindingExtensions.cs
    │   │   │   └── RxCommandExtensions.cs
    │   │   ├── Compatibilities
    │   │   │   └── IsExternalInit.cs
    │   │   ├── Extensions
    │   │   │   ├── CatchIgnoreObservableExtensions.cs
    │   │   │   ├── CombineLatestEnumerableExtensions.cs
    │   │   │   ├── DisposePreviousValueExtensions.cs
    │   │   │   ├── ICommandExtensions.cs
    │   │   │   ├── INotifyCollectionChangedExtensions.cs
    │   │   │   ├── INotifyDataErrorInfoExtensions.cs
    │   │   │   ├── INotifyPropertyChangedExtensions.cs
    │   │   │   ├── InverseObservableExtensions.cs
    │   │   │   ├── ObservableCollectionExtensions.cs
    │   │   │   ├── OldNewPair.cs
    │   │   │   ├── PairwiseObservableExtensions.cs
    │   │   │   ├── PropertyPack.cs
    │   │   │   ├── RetryObservableExtensions.cs
    │   │   │   ├── SenderEventArgsPair.cs
    │   │   │   ├── ToUnitObservableExtensions.cs
    │   │   │   └── UIDispatcherSchedulerObservableExtensions.cs
    │   │   ├── Helpers
    │   │   │   ├── CollectionUtilities.cs
    │   │   │   ├── FilteredReadOnlyObservableCollection.cs
    │   │   │   └── FilteredReadOnlyObservableCollectionExtensions.cs
    │   │   ├── Interactivity
    │   │   │   ├── DelegateConverter.cs
    │   │   │   ├── IEventToReactiveConverter.cs
    │   │   │   └── ReactiveConverter.cs
    │   │   ├── Internals
    │   │   │   ├── InternalObservable.cs
    │   │   │   ├── InternalVisibleTo.cs
    │   │   │   ├── PropertyObservableLegacy.cs
    │   │   │   └── PropertyPathNodeLegacy.cs
    │   │   ├── key.snk
    │   │   ├── Notifiers
    │   │   │   ├── BooleanNotifierLegacy.cs
    │   │   │   ├── BusyNotifierLegacy.cs
    │   │   │   ├── CountNotifierLegacy.cs
    │   │   │   ├── MessageBrokerLegacy.cs
    │   │   │   └── ScheduledNotifier.cs
    │   │   ├── ObservableAsyncHandler.cs
    │   │   ├── ObservableEx.cs
    │   │   ├── ReactiveCollection.cs
    │   │   ├── ReactiveCommand.cs
    │   │   ├── ReactiveProperty.cs
    │   │   ├── ReactivePropertyExtensions.cs
    │   │   ├── ReactiveProperty.NETStandard.csproj
    │   │   ├── ReactivePropertyScheduler.cs
    │   │   ├── ReactiveTimer.cs
    │   │   ├── ReadOnlyReactiveCollection.cs
    │   │   ├── ReadOnlyReactiveProperty.cs
    │   │   └── UIDispatcherScheduler.cs
    │   ├── ReactiveProperty.Platform.Android
    │   │   ├── BindingSupportExtensions.cs
    │   │   ├── Extensions
    │   │   │   └── ViewEventExtensions.cs
    │   │   ├── Internal
    │   │   │   └── AccessorCache.cs
    │   │   ├── key.snk
    │   │   ├── ListAdapter.cs
    │   │   ├── ObservableCollectionAdapter.cs
    │   │   └── ReactiveProperty.Platform.Android.csproj
    │   ├── ReactiveProperty.Platform.Blazor
    │   │   ├── CommandExtensions.cs
    │   │   ├── Components
    │   │   │   ├── ReactivePropertiesValidator.cs
    │   │   │   └── ReactivePropertiesValidatorEditContextExtensions.cs
    │   │   ├── _Imports.razor
    │   │   └── ReactiveProperty.Platform.Blazor.csproj
    │   ├── ReactiveProperty.Platform.iOS
    │   │   ├── BindingSupportExtensions.cs
    │   │   ├── Internal
    │   │   │   └── AccessorCache.cs
    │   │   ├── IUICollectionViewDataSourceExtensions.cs
    │   │   ├── IUITableViewDataSourceExtensions.cs
    │   │   ├── key.snk
    │   │   ├── ReactiveProperty.Platform.iOS.csproj
    │   │   ├── UIBarItemExtensions.cs
    │   │   ├── UICollectionViewSourceExtensions.cs
    │   │   ├── UIGestureRecognizerExtensions.cs
    │   │   ├── UIResponderExtensions.cs
    │   │   └── UITableViewSourceExtensions.cs
    │   ├── ReactiveProperty.Platform.Shared
    │   │   ├── Extensions
    │   │   │   └── DependencyObjectExtensions.cs
    │   │   ├── Interactivity
    │   │   │   ├── EventToReactiveCommand.cs
    │   │   │   └── EventToReactiveProperty.cs
    │   │   ├── ObjectExtensions
    │   │   │   └── ObserveEveryValueChangedExtensions.cs
    │   │   ├── ReactiveProperty.Platform.Shared.projitems
    │   │   └── ReactiveProperty.Platform.Shared.shproj
    │   ├── ReactiveProperty.Platform.UWP
    │   │   ├── Interactivity
    │   │   │   ├── Behavior.cs
    │   │   │   ├── Behavior.Internal.cs
    │   │   │   ├── ConditionBehavior.cs
    │   │   │   ├── EventTriggerBehavior.cs
    │   │   │   ├── ITrigger.cs
    │   │   │   ├── PreviewInvokeEventArgs.cs
    │   │   │   ├── TargetedTriggerAction.cs
    │   │   │   ├── TargetedTriggerAction.Internal.cs
    │   │   │   ├── TriggerActionCollection.cs
    │   │   │   ├── TriggerAction.cs
    │   │   │   ├── TriggerAction.Internal.cs
    │   │   │   ├── TriggerBase.cs
    │   │   │   ├── TriggerBase.Internal.cs
    │   │   │   ├── Trigger.cs
    │   │   │   └── Trigger.internal.cs
    │   │   └── ReactiveProperty.Platform.UWP.csproj
    │   └── ReactiveProperty.Platform.WPF
    │       ├── key.snk
    │       ├── ReactiveProperty.Platform.WPF.csproj
    │       └── Schedulers
    │           └── ReactivePropertyWpfScheduler.cs
    └── Test
        ├── ReactiveProperty.Blazor.Tests
        │   ├── Components
        │   │   └── ReactivePropertiesValidatorTest.cs
        │   └── ReactiveProperty.Blazor.Tests.csproj
        ├── ReactiveProperty.NETStandard.Tests
        │   ├── AsyncReactiveCommandTest.cs
        │   ├── AwaiterTest.cs
        │   ├── Binding
        │   │   ├── RxBindingExtensionsTest.cs
        │   │   └── RxCommandExtensionsTest.cs
        │   ├── ChainingAssertion.MSTest.cs
        │   ├── Extensions
        │   │   ├── AccessorCacheTest.cs
        │   │   ├── CombineLatestEnumerableExtensionsTest.cs
        │   │   ├── DisposePreviousValueExtensionsTest.cs
        │   │   ├── INotifyPropertyChangedExtensionsTest.cs
        │   │   ├── InverseObservableExtensionsTest.cs
        │   │   ├── ObserveCollectionExtensionsTest.cs
        │   │   ├── OldNewPairTest.cs
        │   │   ├── PairwiseTest.cs
        │   │   ├── ReactiveCollectionTest.cs
        │   │   └── RetryObservableExtensionsTest.cs
        │   ├── Helpers
        │   │   ├── CollectionUtilitiesTest.cs
        │   │   ├── FilteredReadOnlyObservableCollectionExtensionsTest.cs
        │   │   └── FilteredReadOnlyObservableCollectionTest.cs
        │   ├── Internals
        │   │   └── PropertyObservableTest.cs
        │   ├── MolesAssemblies
        │   │   ├── mscorlib.Behaviors.dll
        │   │   ├── mscorlib.Moles.dll
        │   │   ├── System.Behaviors.dll
        │   │   ├── System.Moles.dll
        │   │   └── System.Moles.xml
        │   ├── Notifiers
        │   │   ├── BooleanNotifierTest.cs
        │   │   ├── BusyNotifierTest.cs
        │   │   ├── CountNotifierTest.cs
        │   │   ├── MessageBrokerTest.cs
        │   │   └── ScheduledNotifierTest.cs
        │   ├── ReactiveCommandSlimTest.cs
        │   ├── ReactiveCommandTest.cs
        │   ├── ReactiveProperty.NETStandard.Tests.csproj
        │   ├── ReactivePropertyPerformanceTest.cs
        │   ├── ReactivePropertySlimTest.cs
        │   ├── ReactivePropertyTest.cs
        │   ├── ReactivePropertyTest.Static.cs
        │   ├── ReactivePropertyValidationTest.cs
        │   ├── ReactiveTimerTest.cs
        │   ├── ReadOnlyReactiveCollectionTest.cs
        │   ├── ReadOnlyReactivePropertySlimTest.cs
        │   ├── ReadOnlyReactivePropertyTest.cs
        │   ├── Strings
        │   │   ├── Resource.Designer.cs
        │   │   └── Resource.resx
        │   ├── test-key.snk
        │   ├── TestUtilities
        │   │   └── RangedObservableCollection.cs
        │   └── ValidatableReactivePropertyTest.cs
        ├── ReactiveProperty.WPF.ManualTests
        │   ├── App.xaml
        │   ├── App.xaml.cs
        │   ├── AssemblyInfo.cs
        │   ├── MainWindow.xaml
        │   ├── MainWindow.xaml.cs
        │   ├── ReactiveProperty.WPF.ManualTests.csproj
        │   ├── ValidationViewModel.cs
        │   ├── ValidationWindow.xaml
        │   └── ValidationWindow.xaml.cs
        └── ReactiveProperty.WPF.Tests
            ├── ChainingAssertion.MSTest.cs
            ├── Extensions
            │   └── DependencyObjectExtensionsTest.cs
            ├── Interactivity
            │   └── EventToReactiveCommandTest.cs
            ├── ReactiveProperty.WPF.Tests.csproj
            └── STATestMethodAttribute.cs

111 directories, 451 files

标签:

实例下载地址

ReactiveProperty在Reactive Extensions下提供了MVVM和异步支持功能

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警