DataTemplate을 사용하여 개체를 표시하는 ListBox가 있습니다. DataTemplate에는 TextBox가 있습니다. 사용자가 ListBox에서 항목을 선택하면 선택한 항목의 TextBox에 포커스를 설정하려고합니다.ListBoxItem을 선택하면 ItemTemplate 내의 컨트롤에 포커스를 어떻게 설정합니까?
ListBox.SelectionChanged를 처리하여 부분적으로이 작업을 수행 할 수 있었지만 사용자가 ListBox를 클릭하여 항목을 선택할 때만 작동합니다. - 사용자가 ListBox에 들어가서 화살표를 사용하면 작동하지 않습니다. 키를 눌러 TextBox.Focus() 이인데도 항목을 선택하십시오.
사용자가 키보드를 사용하여 항목을 선택할 때 어떻게 TextBox에 포커스를 설정할 수 있습니까? 이와 SelectionChanged
이벤트 처리기에서 tb.Focus()
를 대체하는 것입니다 할
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem lbi = (ListBoxItem)this.lb1.ItemContainerGenerator.ContainerFromItem(this.lb1.SelectedItem);
Visual v = GetDescendantByType<TextBox>(lbi);
TextBox tb = (TextBox)v;
tb.Focus();
}
좋은 답변 : 왜 설명이 * 왜 * 작동하는지 설명하는 문장을 추가해도 괜찮습니까? 나는 그것이 약간 더러웠다라고 말해야한다. 그러나 그것은 직업을 끝낸다. –
와우. 그 선은 날 보호기이었다! 정말 고맙습니다. – Timotei