private void OnTaskItemTest(object sender, TaskItemViewModel vm)
        {
            var index = TaskItemViewModels.IndexOf(vm);

            if (index >= 0)
            {
                TaskItemViewModels[index] = vm;
            }
        }
        private void ResetTaskItemVm(TaskItemViewModel vmToReset)
        {
            var index = TaskItemViewModels.IndexOf(vmToReset);

            if (index < 0)
            {
                return;            // just to be safe
            }
            var task  = DbManager.Instance.GetEntityById <TaskItem>(vmToReset.TaskItem.Id);
            var newVm = GetTaskItemVm(task);

            TaskItemViewModels[index] = newVm;
        }
        // Event handlers

        private void OnTaskItemUpdated(dynamic sender, TaskItem taskItem)
        {
            try
            {
                var index = TaskItemViewModels.IndexOf(sender);
                if (index >= 0)
                {
                    TaskItemViewModels[index] = GetTaskItemVm(taskItem);
                }
            }
            catch (RuntimeBinderException ex)
            {
                Debug.WriteLine($"on task item updated: {ex}");
            }
        }