コード例 #1
0
        public void OfTypeComputing_Insert(
            [Range(-2, 0, 1)] int item1,
            [Range(-2, 0, 1)] int item2,
            [Range(0, 2, 1)] int index,
            [Range(-1, 0, 1)] int newItem)
        {
            ObservableCollection <BaseItem> items = new ObservableCollection <BaseItem>();

            if (item1 >= -1)
            {
                items.Add(item1 >= 0 ? (item1 == 1 ? new DerivedItem() : new BaseItem()) : null);
            }
            if (item2 >= -1)
            {
                items.Add(item2 >= 0 ? (item2 == 1 ? new DerivedItem() : new BaseItem()) : null);
            }

            if (index > items.Count)
            {
                return;
            }

            OfTypeComputing <DerivedItem> ofTypeComputing = items.OfTypeComputing <DerivedItem>().For(consumer);

            ofTypeComputing.ValidateInternalConsistency();
            items.Insert(index, newItem >= 0 ? (newItem == 1 ? new DerivedItem() : new BaseItem()) : null);
            ofTypeComputing.ValidateInternalConsistency();
            consumer.Dispose();
        }
コード例 #2
0
        public void OfTypeComputing_Remove(
            [Range(-2, 0, 1)] int item1,
            [Range(-2, 0, 1)] int item2,
            [Range(0, 1, 1)] int index)
        {
            ObservableCollection <BaseItem> items = new ObservableCollection <BaseItem>();

            if (item1 >= -1)
            {
                items.Add(item1 >= 0 ? (item1 == 1 ? new DerivedItem() : new BaseItem()) : null);
            }
            if (item2 >= -1)
            {
                items.Add(item2 >= 0 ? (item2 == 1 ? new DerivedItem() : new BaseItem()) : null);
            }

            if (index >= items.Count)
            {
                return;
            }

            OfTypeComputing <DerivedItem> ofTypeComputing = items.OfTypeComputing <DerivedItem>();

            ofTypeComputing.ValidateConsistency();
            items.RemoveAt(index);
            ofTypeComputing.ValidateConsistency();
        }
コード例 #3
0
        public void OfTypeComputing_Move(
            [Range(-2, 0, 1)] int item1,
            [Range(-2, 0, 1)] int item2,
            [Range(0, 4, 1)] int oldIndex,
            [Range(0, 4, 1)] int newIndex)
        {
            ObservableCollection <BaseItem> items = new ObservableCollection <BaseItem>();

            if (item1 >= -1)
            {
                items.Add(item1 >= 0 ? (item1 == 1 ? new DerivedItem() : new BaseItem()) : null);
            }
            if (item2 >= -1)
            {
                items.Add(item2 >= 0 ? (item2 == 1 ? new DerivedItem() : new BaseItem()) : null);
            }

            if (oldIndex >= items.Count || newIndex >= items.Count)
            {
                return;
            }

            OfTypeComputing <DerivedItem> ofTypeComputing = items.OfTypeComputing <DerivedItem>().For(consumer);

            ofTypeComputing.ValidateConsistency();
            items.Move(oldIndex, newIndex);
            ofTypeComputing.ValidateConsistency();
            consumer.Dispose();
        }
コード例 #4
0
        public void OfTypeComputing_Initialization_01()
        {
            ObservableCollection <DerivedItem> items = new ObservableCollection <DerivedItem>();

            OfTypeComputing <BaseItem> ofTypeComputing = items.OfTypeComputing <BaseItem>();

            ofTypeComputing.ValidateConsistency();
        }