public MainPage()
        {
            this.InitializeComponent();

            ViewModel = new TaskListPageViewModel();

            this.DataContext = ViewModel;
        }
Exemple #2
0
        public TaskListPage()
        {
            InitializeComponent();
            BindingContext         = viewModel = new TaskListPageViewModel(0);
            lvCongViec.ItemTapped += TaskList_Tapped;
            Init();

            MessagingCenter.Subscribe <TaskDetailPage, Guid>(this, "CompletedTask", async(sender, arg) =>
            {
                loadingPopup.IsVisible = true;
                if (this.viewModel.Data.Any(x => x.Id == arg))
                {
                    var task = this.viewModel.Data.Single(x => x.Id == arg);
                    this.viewModel.Data.Remove(task);
                }
                loadingPopup.IsVisible = false;
            });

            MessagingCenter.Subscribe <AddTaskPage, CongViec>(this, "UpdateTask", async(sender, arg) =>
            {
                loadingPopup.IsVisible = true;
                if (this.viewModel.Data.Any(x => x.Id == arg.Id))
                {
                    var task = this.viewModel.Data.Single(x => x.Id == arg.Id);
                    this.viewModel.Data.Remove(task);
                }
                if (arg.Status == 0 && viewModel.Type == 0)
                {
                    viewModel.Data.Insert(0, arg);
                }
                loadingPopup.IsVisible = false;
            });

            MessagingCenter.Subscribe <AddTaskPage, CongViec>(this, "AddTask", async(sender, arg) =>
            {
                loadingPopup.IsVisible = true;
                if (viewModel.Type == 0)
                {
                    viewModel.Data.Insert(0, arg);
                }
                loadingPopup.IsVisible = false;
            });

            MessagingCenter.Subscribe <TaskDetailPage, Guid>(this, "DeleteTask", async(sender, arg) =>
            {
                loadingPopup.IsVisible = true;
                if (this.viewModel.Data.Any(x => x.Id == arg))
                {
                    var task = this.viewModel.Data.Single(x => x.Id == arg);
                    this.viewModel.Data.Remove(task);
                }
                loadingPopup.IsVisible = false;
            });


            MessagingCenter.Subscribe <ContactListPage, Guid>(this, "DeleteContact", async(sender, id) =>
            {
                var tasks = viewModel.Data.Where(x => x.ContactId == id).ToList();
                if (tasks.Any())
                {
                    foreach (var item in tasks)
                    {
                        viewModel.Data.Remove(item);
                    }
                }
            });
        }