Пример #1
0
        private async void StartVoting()
        {
            var start = new Views.ChildWindows.Voting.Start()
            {
                IsModal = true, AllowMove = true
            };

            ((ChildWindows.Voting.Start)start.DataContext).CloseEvent
                += (sender, EventArgs) => CloseStartWindow(start, true);
            start.CloseButtonCommand = new Internal.RelayCommand(c => IsStarted = false);

            start.Closing += (sender, EventArgs) => CloseStartWindow(start);

            await((MetroWindow)Application.Current.MainWindow).ShowChildWindowAsync(start).ConfigureAwait(false);
        }
Пример #2
0
        private void CloseStartWindow(Views.ChildWindows.Voting.Start start, bool fromDatacontext = false)
        {
            var dataContext = Internal.ChildWindow.GetDatacontext
                              <ViewModels.ChildWindows.Voting.Start>(start.DataContext);

            if (dataContext?.IsCompleted() == true && fromDatacontext)
            {
                _handler = new Extensions.Voting.Handler(dataContext.Properties);
                _handler.StartListining();
                ChartValues = new Models.ChartValues();
                CreateChart(dataContext.Properties);
                VotedUsers            = new ObservableCollection <VotedUser>();
                _handler.OnUserVoted += OnUserVoted;
                IsStarted             = true;
                start.Close();
            }
            else
            {
                IsStarted = false;
            }
        }