Beispiel #1
0
 private void tasks_SubObjectPropChanged(PropChangeInfo propChange)
 {
     Assert.AreEqual(propChange.Source, tasks);
     Assert.AreEqual(PropertyIds.Tasks, propChange.PropId);
     Assert.AreNotEqual(null, propChange.Trigger);
     clear_trigger(propChange.Trigger);
 }
Beispiel #2
0
        /// <summary>
        /// 清除该集合中的所有Task
        /// </summary>
        public void Clear()
        {
            InternalClear();
            PropChangeInfo trigger = new PropChangeInfo(null, PropertyIds.Clear, null);

            this.NotifyPropChange(PropertyIds.Tasks, trigger);
        }
Beispiel #3
0
        /// <summary>
        /// 移除一个Task
        /// </summary>
        /// <param name="task">被移除的Task</param>
        public void Remove(Task task)
        {
            InternalRemove(task);

            PropChangeInfo trigger = new PropChangeInfo(task, PropertyIds.Remove, null);

            this.NotifyPropChange(PropertyIds.Tasks, trigger);
        }
Beispiel #4
0
        /// <summary>
        /// 插入一个Task
        /// </summary>
        /// <param name="index"></param>
        /// <param name="task"></param>
        /// <returns></returns>
        public void Insert(int index, Task task)
        {
            //EnsureNotExist ( task );

            InternalInsert(index, task);

            PropChangeInfo trigger = new PropChangeInfo(task, PropertyIds.Insert, null);

            this.NotifyPropChange(PropertyIds.Tasks, trigger);
        }
Beispiel #5
0
        /// <summary>
        /// 移除一个Task
        /// </summary>
        /// <param name="index">被移除的Task的索引</param>
        public void RemoveAt(int index)
        {
            Task task = this.GetItem(index) as Task;

            Debug.Assert(task != null, "Index error at  RemoveAt( int index ).");

            InternalRemove(index);

            PropChangeInfo trigger = new PropChangeInfo(task, PropertyIds.Remove, null);

            this.NotifyPropChange(PropertyIds.Tasks, trigger);
        }
        private void TasksChanged(PropChangeInfo propChange)
        {
            switch ((PropertyIds)propChange.PropId)
            {
            case PropertyIds.Add:
                //propChange.Source as Task;
                break;

            case PropertyIds.Insert:
                break;

            case PropertyIds.Clear:
                break;

            case PropertyIds.Remove:
                //?? remove item pos

                break;
            }
        }
Beispiel #7
0
        /// <summary>
        /// 添加一个新的Task, 添加时会根据task.TaskStrategy.FirstExecute值来决定加入到
        /// 集合的末尾或被第一个执行的位置。
        /// </summary>
        /// <param name="task"></param>
        public void Add(Task task)
        {
            //EnsureNotExist ( task );

            if (task == null)
            {
                throw new ArgumentNullException("task");
            }

            if (task.TaskStrategy.FirstExecute)
            {
                this.AddFirstExectueTask(task);
            }
            else
            {
                this.InternalAdd(task);
            }
            //通告Tasks集合改变
            //
            PropChangeInfo trigger = new PropChangeInfo(task, PropertyIds.Add, null);

            this.NotifyPropChange(PropertyIds.Tasks, trigger);
        }
Beispiel #8
0
 void clear_trigger(PropChangeInfo t)
 {
     Assert.AreEqual(null, t.Source);
     Assert.AreEqual(PropertyIds.Clear, t.PropId);
 }