1
나는 Grid
을 가지고 있는데, 나는 그 셀로 걸을 때 셀에 들어가지만 텍스트를 선택하지는 않습니다. 값을 변경해야 할 때 먼저 백 스페이스 키를 사용해야합니다.셀을 입력 할 때 텍스트를 선택하는 방법
셀을 입력 한 후 수행 할 수있는 작업은 해당 셀의 내용을 선택 했습니까?
나는 Grid
을 가지고 있는데, 나는 그 셀로 걸을 때 셀에 들어가지만 텍스트를 선택하지는 않습니다. 값을 변경해야 할 때 먼저 백 스페이스 키를 사용해야합니다.셀을 입력 할 때 텍스트를 선택하는 방법
셀을 입력 한 후 수행 할 수있는 작업은 해당 셀의 내용을 선택 했습니까?
이 용도로 동작을 사용하는 것이 좋습니다. 이 도움이
/// <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;
}
}
희망 : 내가 생각 기능을 제공하는 최소한의 구현을 포함했다 아래이 찾고있는 사람이 있습니다.
+1하지만 'Behavior'은 Blend SDK에서 찾을 수 있습니다. 또한 템플리트 화 된 격자 열이 필요할 것이며 간단한 텍스트 열은 그대로 동작을 사용할 수 없습니다. –
AnthonyWJones
글쎄, 나는 순진하게 그리드를보고 DataGrid 컨트롤과 반대되는 그리드 컨테이너를 상상했지만 다시 읽으면 셀에 대한 그의 언급이 후자를 제안하는 것처럼 보입니다. 그래, DataGridTemplateColumn에 텍스트 블록과 첨부 된 비헤이비어를 포함시키는 것이 좋습니다. WeakReference를 사용하는 것이 좋습니다.이 동작이 DataGrid에서 사용되는 경우, 분명히 OnDetaching이 필요할 때 항상 호출되는 것은 아니기 때문입니다. – ibebbs
답장을 보내 주셔서 감사합니다. 불행히도 DataGridTemplateColumn (레거시 코드)을 사용할 수 없기 때문에이 솔루션은 저를위한 것이 아닙니다 :/ – user278618