Пример #1
0
        // SERVER EVENTS
        private void AddServerButton_Click(object sender, RoutedEventArgs e)
        {
            if (!AddServerButtonImage.Source.ToString().Contains("0"))
            {
                Server server = new Server();
                serverList.Add(server);

                gameList.Find(x => x.Name == gamesListComboBox.Text).Regions.Find(x => x.Name == regionsListComboBox.Text).Servers.Add(server);

                // Ensure newly added item is visible
                ServersDataGrid.ScrollIntoView(server);

                // Force the UI thread to update changes to the datagrids itemsource
                RefreshUIControl(ServersDataGrid);

                // Select the new item and ensure server buttons are correct
                ServersDataGrid.SelectedItem  = server;
                DeleteServerButton.Visibility = Visibility.Visible;
                AddServerButton.Visibility    = Visibility.Hidden;

                // Start the edit process on the first cell of the newly formed object
                ServersDataGrid.CurrentCell = new DataGridCellInfo(server, ServersDataGrid.Columns[0]);
                ServersDataGrid.BeginEdit();
            }
        }
Пример #2
0
        private void ServersDataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            TextBox cellTextBox = e.EditingElement as TextBox;

            // If a cell is left empty after editing, cancel the cell edit to refute the change
            if (cellTextBox.Text == "" && !isCancelledByGridClick)
            {
                // Cancel the edit by invoking a new edit on the current cell
                (sender as DataGrid).Dispatcher.BeginInvoke((Action)(() =>
                {
                    Server server = (Server)e.Row.Item;
                    ServersDataGrid.CurrentCell = new DataGridCellInfo(server, e.Column);
                    ServersDataGrid.BeginEdit();
                    cellTextBox.BorderBrush = new SolidColorBrush(Colors.DarkRed);
                }));

                // TODO: Change the specific cell border to red and/or display a tooltip with error text "Cell cannot be empty"
            }
        }