コード例 #1
0
ファイル: ItemHostCollection.cs プロジェクト: Egaros/lib
        internal void RemoveAtInternal(int index)
        {
            var syncActionData = new SyncActionData(index, Items[index]);

            SyncCore(SyncAction.PreRemove, syncActionData);

            Items.RemoveAt(index);

            SyncCore(SyncAction.PostRemove, syncActionData);
        }
コード例 #2
0
ファイル: ItemHostCollection.cs プロジェクト: Egaros/lib
        internal void InsertInternal(int index, TItem item)
        {
            var syncActionData = new SyncActionData(index, item);

            SyncCore(SyncAction.PreInsert, syncActionData);

            Items.Insert(index, item);

            SyncCore(SyncAction.PostInsert, syncActionData);
        }
コード例 #3
0
        protected override void SyncCore(SyncAction syncAction, SyncActionData syncActionData)
        {
            switch (syncAction)
            {
            case SyncAction.PreClear:
            case SyncAction.PreInit:

                Children.Clear();

                break;

            case SyncAction.PostInit:

                SyncBase();

                break;

            case SyncAction.PreInsert:

                SyncBase();

                break;

            case SyncAction.PostInsert:

                Children.Insert(syncActionData.Index, GetActualElement(syncActionData.Item));

                break;

            case SyncAction.PreRemove:

                SyncBase();

                break;

            case SyncAction.PostRemove:

                Children.RemoveAt(syncActionData.Index);

                break;
            }
        }
コード例 #4
0
ファイル: ItemHostCollection.cs プロジェクト: Egaros/lib
 protected abstract void SyncCore(SyncAction syncAction, SyncActionData syncActionData);