当前位置: 首页>>代码示例>>C#>>正文


C# ObservableDictionary.Reset方法代码示例

本文整理汇总了C#中ObservableDictionary.Reset方法的典型用法代码示例。如果您正苦于以下问题:C# ObservableDictionary.Reset方法的具体用法?C# ObservableDictionary.Reset怎么用?C# ObservableDictionary.Reset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ObservableDictionary的用法示例。


在下文中一共展示了ObservableDictionary.Reset方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ResetRaisesPropertyChangeEventForItemIndexerdAndCount

        public void ResetRaisesPropertyChangeEventForItemIndexerdAndCount()
        {
            // given
            using (var observableDictionary = new ObservableDictionary<int, string>())
            {
                observableDictionary.MonitorEvents();

                // when
                observableDictionary.Reset();

                // then
                observableDictionary
                    .ShouldRaise(nameof(observableDictionary.PropertyChanged))
                    .WithSender(observableDictionary)
                    .WithArgs<PropertyChangedEventArgs>(args => args.PropertyName == "Item[]");

                observableDictionary
                    .ShouldRaise(nameof(observableDictionary.PropertyChanged))
                    .WithSender(observableDictionary)
                    .WithArgs<PropertyChangedEventArgs>(args => args.PropertyName == nameof(observableDictionary.Count));
            }
        }
开发者ID:jbattermann,项目名称:JB.Common,代码行数:22,代码来源:ObservableDictionaryNotificationTests.cs

示例2: SuppressResetNotificationsSuppressesResetNotifications

        public void SuppressResetNotificationsSuppressesResetNotifications()
        {
            // given
            var scheduler = new TestScheduler();
            var observer = scheduler.CreateObserver<IObservableDictionaryChange<int, string>>();
            var resetsObserver = scheduler.CreateObserver<Unit>();

            using (var observableDictionary = new ObservableDictionary<int, string>(scheduler: scheduler))
            {
                // when
                observableDictionary.ThresholdAmountWhenChangesAreNotifiedAsReset = int.MaxValue;

                IDisposable dictionaryChangesSubscription = null;
                IDisposable resetsSubscription = null;

                try
                {
                    dictionaryChangesSubscription = observableDictionary.DictionaryChanges.Subscribe(observer);
                    resetsSubscription = observableDictionary.Resets.Subscribe(resetsObserver);

                    using (observableDictionary.SuppressResetNotifications(false))
                    {
                        observableDictionary.Reset();

                        scheduler.AdvanceBy(2);
                    }

                    scheduler.AdvanceBy(2);

                    // then
                    observer.Messages.Should().BeEmpty();
                    resetsObserver.Messages.Should().BeEmpty();
                }
                finally
                {
                    dictionaryChangesSubscription?.Dispose();
                    resetsSubscription?.Dispose();
                }
            }
        }
开发者ID:jbattermann,项目名称:JB.Common,代码行数:40,代码来源:ObservableDictionaryNotificationTests.cs

示例3: ResetNotifiesAsReset

        public void ResetNotifiesAsReset()
        {
            // given
            var scheduler = new TestScheduler();
            var observer = scheduler.CreateObserver<IObservableDictionaryChange<int, string>>();
            var resetsObserver = scheduler.CreateObserver<Unit>();
            var observableCollectionChangesObserver = scheduler.CreateObserver<IObservableCollectionChange<KeyValuePair<int, string>>>();

            using (var observableDictionary = new ObservableDictionary<int, string>(scheduler: scheduler))
            {
                // when
                observableDictionary.ThresholdAmountWhenChangesAreNotifiedAsReset = int.MaxValue;

                IDisposable dictionaryChangesSubscription = null;
                IDisposable resetsSubscription = null;
                IDisposable observableCollectionChangesSubscription = null;

                try
                {
                    dictionaryChangesSubscription = observableDictionary.DictionaryChanges.Subscribe(observer);
                    resetsSubscription = observableDictionary.Resets.Subscribe(resetsObserver);
                    observableCollectionChangesSubscription =
                        ((INotifyObservableCollectionChanges<KeyValuePair<int, string>>)observableDictionary)
                        .CollectionChanges
                        .Subscribe(observableCollectionChangesObserver);

                    observableDictionary.Reset();
                    scheduler.AdvanceBy(3);

                    // then
                    resetsObserver.Messages.Count.Should().Be(1);
                    observer.Messages.Count.Should().Be(1);
                    observableCollectionChangesObserver.Messages.Count.Should().Be(1);

                    observer.Messages.First().Value.Value.ChangeType.Should().Be(ObservableDictionaryChangeType.Reset);
                    observer.Messages.First().Value.Value.Key.Should().Be(default(int));
                    observer.Messages.First().Value.Value.Value.Should().Be(default(string));
                    observer.Messages.First().Value.Value.OldValue.Should().Be(default(string));
                    observer.Messages.First().Value.Value.ChangedPropertyName.Should().BeEmpty();

                    observableCollectionChangesObserver.Messages.First().Value.Value.ChangeType.Should().Be(ObservableCollectionChangeType.Reset);
                    observableCollectionChangesObserver.Messages.First().Value.Value.Item.Key.Should().Be(default(int));
                    observableCollectionChangesObserver.Messages.First().Value.Value.Item.Value.Should().Be(default(string));
                }
                finally
                {
                    dictionaryChangesSubscription?.Dispose();
                    resetsSubscription?.Dispose();
                    observableCollectionChangesSubscription?.Dispose();
                }
            }
        }
开发者ID:jbattermann,项目名称:JB.Common,代码行数:52,代码来源:ObservableDictionaryNotificationTests.cs

示例4: SuppressResetNotificationsNotifiesResetWhenSuppressionIsDisposedIfRequested

        public void SuppressResetNotificationsNotifiesResetWhenSuppressionIsDisposedIfRequested()
        {
            // given
            var scheduler = new TestScheduler();
            var observer = scheduler.CreateObserver<IObservableDictionaryChange<int, string>>();
            var resetsObserver = scheduler.CreateObserver<Unit>();

            using (var observableDictionary = new ObservableDictionary<int, string>(scheduler: scheduler))
            {
                // when
                observableDictionary.ThresholdAmountWhenChangesAreNotifiedAsReset = int.MaxValue;

                IDisposable dictionaryChangesSubscription = null;
                IDisposable resetsSubscription = null;

                try
                {
                    dictionaryChangesSubscription = observableDictionary.DictionaryChanges.Subscribe(observer);
                    resetsSubscription = observableDictionary.Resets.Subscribe(resetsObserver);

                    using (observableDictionary.SuppressResetNotifications(true))
                    {
                        observableDictionary.Reset();
                        observableDictionary.Reset();
                        observableDictionary.Reset();

                        scheduler.AdvanceBy(6);
                    }

                    scheduler.AdvanceBy(2);

                    // then
                    resetsObserver.Messages.Count.Should().Be(1);
                    observer.Messages.Count.Should().Be(1);

                    observer.Messages.First().Value.Value.ChangeType.Should().Be(ObservableDictionaryChangeType.Reset);
                    observer.Messages.First().Value.Value.Key.Should().Be(default(int));
                    observer.Messages.First().Value.Value.Value.Should().Be(default(string));
                    observer.Messages.First().Value.Value.OldValue.Should().Be(default(string));
                    observer.Messages.First().Value.Value.ChangedPropertyName.Should().BeEmpty();
                }
                finally
                {
                    dictionaryChangesSubscription?.Dispose();
                    resetsSubscription?.Dispose();
                }
            }
        }
开发者ID:jbattermann,项目名称:JB.Common,代码行数:48,代码来源:ObservableDictionaryNotificationTests.cs

示例5: ResetDoesNotModifyDictionary

        public void ResetDoesNotModifyDictionary()
        {
            // given
            var initialKvPs = new List<KeyValuePair<int, string>>()
            {
                new KeyValuePair<int, string>(1, "One"),
                new KeyValuePair<int, string>(2, "Two")
            };

            using (var observableDictionary = new ObservableDictionary<int, string>(initialKvPs))
            {
                // when
                observableDictionary.Reset();

                // then 
                observableDictionary.Count.Should().Be(2);
                observableDictionary.Should().Contain(1, "One");
                observableDictionary.Should().Contain(2, "Two");
            }
        }
开发者ID:jbattermann,项目名称:JB.Common,代码行数:20,代码来源:ObservableDictionaryModificationTests.cs


注:本文中的ObservableDictionary.Reset方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。