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); }
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; } }