как установить фокус на конкретную ячейку инструментария WPF datagrid

Чтобы уточнить версию memcpy. I thnk это необходимо для ARM, который не может иметь неверные данные.

Я создал структуру, содержащую только первые два поля (мне нужен только порт)

struct sockaddr_in_header {
    sa_family_t    sin_family; /* address family: AF_INET */
    in_port_t      sin_port;   /* port in network byte order */
};

Затем, чтобы получить порт, я использовал memcpy для перемещения данных в стек

struct sockaddr_in_header   sinh;
unsigned short              sin_port;

memcpy(&sinh, conn->local_sockaddr, sizeof(struct sockaddr_in_header));

И вернул порт

sin_port = ntohs(sinh.sin_port);

. Этот ответ действительно связан с получением порта на руке

Как мне наложить указатель sockaddr на sockaddr_in на Arm

Силы, которые будут думать, что это тот же вопрос, что и этот, однако я не хочу игнорировать предупреждения. Опыт научил меня, что это плохая идея.

13
задан Rajkishor Sahu 6 August 2010 в 06:53
поделиться

2 ответа

Вам нужно установить текущую ячейку на ту, которую вы хотите отредактировать, а затем вызвать BeginEdit в обработчике Loaded:

dataGrid1.CurrentCell = new DataGridCellInfo(
    dataGrid1.Items[0], dataGrid1.Columns[3]);
dataGrid1.BeginEdit();

Если вы дадите своему DataGridTextColumn имя в XAML вы можете использовать это имя вместо Столбцы [3] .

41
ответ дан 1 December 2019 в 17:47
поделиться

У меня есть datagrid с TextBox в DataTemplate DataGridTemplateColumn. Также я использую, Входят вместо Вкладки, чтобы сфокусировать Текстовое поле

private void DataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        e.Handled = true;
        var TabKey = new KeyEventArgs(e.KeyboardDevice, e.InputSource, e.Timestamp, Key.Tab);
        TabKey.RoutedEvent = Keyboard.KeyDownEvent;
        InputManager.Current.ProcessInput(TabKey);
    }
}

, я решаю проблему фокуса с комбинацией этого кода:

dataGrid.Focus();
//In case of more columns
//dataGrid.CurrentCell = new DataGridCellInfo(dataGrid.Items[0], dataGrid.Columns[1]);
dataGrid.BeginEdit();
(Keyboard.FocusedElement as UIElement).MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
0
ответ дан 1 December 2019 в 17:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: