Ejemplo n.º 1
0
        protected override async Task InitializeAsync()
        {
            await base.InitializeAsync();

            var items = await TodoStorage.GetItemsAsync();

            using (_todoItems.SuspendChangeNotifications())
            {
                _todoItems.ReplaceRange(items);
            }
        }
Ejemplo n.º 2
0
            public void HandlesCollectionChangesCorrectlyInSuspensionModeMixedConsolidate()
            {
                var collection = new FastObservableCollection <TestModel>
                {
                    AutomaticallyDispatchChangeNotifications = false
                };

                var wrapper = new ChangeNotificationWrapper(collection);

                var itemsReset   = false;
                var itemsAdded   = false;
                var itemsRemoved = false;

                var model = new TestModel();

                collection.Add(model);

                wrapper.CollectionChanged += (sender, e) =>
                {
                    if (e.OldItems != null)
                    {
                        itemsRemoved = true;
                    }

                    if (e.Action == NotifyCollectionChangedAction.Reset)
                    {
                        itemsReset = true;
                    }

                    if (e.NewItems != null)
                    {
                        itemsAdded = true;
                    }
                };

                using (collection.SuspendChangeNotifications(SuspensionMode.MixedConsolidate))
                {
                    collection.ReplaceRange(new [] { new TestModel() });
                }

                Assert.IsTrue(itemsAdded, "Items should be added");
                Assert.IsTrue(itemsRemoved, "Items should be removed");
                Assert.IsFalse(itemsReset, "Items should not be reset");
            }
            public void HandlesCollectionChangesByResetCorrectly()
            {
                var collection = new FastObservableCollection <TestModel>();
                var wrapper    = new ChangeNotificationWrapper(collection);

                var itemsReset   = false;
                var itemsAdded   = false;
                var itemsRemoved = false;

                var model = new TestModel();

                collection.Add(model);

                wrapper.CollectionChanged += (sender, e) =>
                {
                    if (e.OldItems != null)
                    {
                        itemsRemoved = true;
                    }

                    if (e.Action == NotifyCollectionChangedAction.Reset)
                    {
                        itemsReset = true;
                    }

                    if (e.NewItems != null)
                    {
                        itemsAdded = true;
                    }
                };

                using (collection.SuspendChangeNotifications())
                {
                    collection.ReplaceRange(new [] { new TestModel() });
                }

                Assert.IsFalse(itemsAdded);
                Assert.IsFalse(itemsRemoved);
                Assert.IsTrue(itemsReset);
            }
            public void HandlesCollectionChangesByResetCorrectly()
            {
                var collection = new FastObservableCollection<TestModel>();
                var wrapper = new ChangeNotificationWrapper(collection);

                var itemsReset = false;
                var itemsAdded = false;
                var itemsRemoved = false;

                var model = new TestModel();
                collection.Add(model);

                wrapper.CollectionChanged += (sender, e) =>
                {
                    if (e.OldItems != null)
                    {
                        itemsRemoved = true;
                    }

                    if (e.Action == NotifyCollectionChangedAction.Reset)
                    {
                        itemsReset = true;
                    }

                    if (e.NewItems != null)
                    {
                        itemsAdded = true;
                    }
                };

                using (collection.SuspendChangeNotifications())
                {
                    collection.ReplaceRange(new [] { new TestModel() });
                }

                Assert.IsFalse(itemsAdded);
                Assert.IsFalse(itemsRemoved);
                Assert.IsTrue(itemsReset);
            }