Как выделить текст при входе в ячейку - PullRequest
1 голос
/ 11 октября 2011

У меня есть Grid, и когда я иду по его ячейкам, я вхожу в ячейку, но без выделения текста. Это раздражает, потому что, когда мне нужно изменить значение, мне нужно сначала использовать клавишу Backspace.

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

1 Ответ

1 голос
/ 11 октября 2011

Я бы порекомендовал использовать поведение для этой цели.Ниже я включил минимальную реализацию, которая обеспечивает функциональность, которую я думаю вы ищете:

/// <summary>
/// <see cref="Behavior{T}"/> of <see cref="TextBox"/> for selecting all text when the text box is focused
/// </summary>
public class TextBoxSelectOnFocusBehavior : Behavior<TextBox>
{
    private void AssociatedObject_GotFocus(object sender, RoutedEventArgs e)
    {
        TextBox textBox = (sender as TextBox);

        if (textBox != null)
            textBox.SelectAll();
    }

    /// <summary>
    /// React to the behavior being attached to an object
    /// </summary>
    protected override void OnAttached()
    {
        base.OnAttached();

        AssociatedObject.GotFocus += AssociatedObject_GotFocus;
    }

    /// <summary>
    /// React to the behavior being detached from an object
    /// </summary>
    protected override void OnDetaching()
    {
        base.OnDetaching();

        AssociatedObject.GotFocus -= AssociatedObject_GotFocus;
    }
}

Надеюсь, это поможет.

...