コード例 #1
0
        public ViewAwareViewModel()
        {
            View = new ViewSink();

            this.WhenLoaded(d =>
            {
                IsLoadedCount++;
                d(Disposable.Create(() => IsLoadedCount--));
            });
        }
コード例 #2
0
        public void UnloadingIgnoringRefCountTicksOnViewUnloadedObservable()
        {
            var viewSink = new ViewSink();

            viewSink.OnViewUnloaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var unloaded).Subscribe();

            viewSink.ViewUnloaded(true);

            Assert.Equal(1, unloaded.Count);
        }
コード例 #3
0
        public void IgnoringCountDoesntTickOnViewUnloadedObservable()
        {
            var viewSink = new ViewSink();

            viewSink.OnViewUnloaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var unloaded).Subscribe();

            viewSink.ViewUnloaded(false);

            Assert.Equal(0, unloaded.Count);
        }
コード例 #4
0
        public void LoadingTicksOnViewLoadedObservable()
        {
            var viewSink = new ViewSink();

            viewSink.OnViewLoaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var loaded).Subscribe();

            viewSink.ViewLoaded();

            Assert.Equal(1, loaded.Count);
        }
コード例 #5
0
        public void DisposingAfterLoadingTicksOnViewUnloadedObservable()
        {
            var viewSink = new ViewSink();

            viewSink.OnViewLoaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var loaded).Subscribe();
            viewSink.OnViewUnloaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var unloaded).Subscribe();

            using (viewSink.ViewLoaded())
            {
                Assert.Equal(1, loaded.Count);
                Assert.Equal(0, unloaded.Count);
            }

            Assert.Equal(1, loaded.Count);
            Assert.Equal(1, unloaded.Count);
        }