Example #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();
            }
        }
Example #2
0
 // Used for losing focus of non-control areas of the grid window, and ending datagrid edits if needed
 private void ClearDataGridSelection(object sender, EventArgs e)
 {
     if (ServersDataGrid.SelectedItem != null)
     {
         isCancelledByGridClick = true;
         ServersDataGrid.CommitEdit();
         isCancelledByGridClick = false;
         ServersDataGrid.UnselectAll();
     }
     ClearFocus(sender, e);
 }
Example #3
0
 private void ServersDataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
 {
     // By handling the keydown event by default, this will prevent the datagrid tabbing to a new row
     if (e.Key == Key.Tab || e.Key == Key.Enter)
     {
         DataGrid dg = sender as DataGrid;
         if (dg.CurrentColumn.Header.ToString() == "Name")
         {
             ServersDataGrid.CommitEdit();
         }
         else
         {
             e.Handled = true;
             ServersDataGrid.CommitEdit();
         }
     }
 }
Example #4
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"
            }
        }
Example #5
0
        public DataGridRow GetRow(int index)

        {

            DataGridRow row = (DataGridRow)ServersDataGrid.ItemContainerGenerator.ContainerFromIndex(index);

            if (row == null)

            {

                ServersDataGrid.UpdateLayout();

                ServersDataGrid.ScrollIntoView(ServersDataGrid.Items[index]);

                row = (DataGridRow)ServersDataGrid.ItemContainerGenerator.ContainerFromIndex(index);

            }

            return row;

        }