Bu eski olduğunu biliyorum, ama bugün bu konuda koştu ve sonunda bu kararı ile geldi: Bir öğe seçildiğinde TextBox
yana
sadece yükleniyor ve bu istediğiniz zaman olduğu Ayarlanacak odak, TextBox.Load
olayını işleyebilir ve Focus()
numaralı telefonu arayabilirsiniz.
Bunu başarmanın iki yolu vardır.
1.
bir AutoFocusTextBox
ile DataTemplate
yılında TextBox
değiştirin. public class AutoFocusTextBox : TextBox
{
public AutoFocusTextBox()
{
Loaded += delegate { Focus(); };
}
}
Eğer AutoFocusTextBox sizin .xaml dosyasında tanımlandığı ad başvurmak gerekir unutmayın.
2. DataTemplate
'un tanımlandığı dosyanın codebehind dosyasına bir işleyici ekleyin.
SomeResourceDictionary.xaml
<TextBox Text="{Binding Something, Mode=TwoWay}" Style={StaticResource ...
Loaded="FocusTextBoxOnLoad" />
SomeResourceDictionary.xaml.cs Her iki seçenekte de
private void FocusTextBoxOnLoad(object sender, RoutedEventArgs e)
{
var textbox = sender as TextBox;
if(textbox == null) return;
textbox.Focus();
}
, her zaman böyle tüm metin seçmek gibi, işleyici diğer davranışları ekleyebilir .
FindResource bir nesne döndürür, bu yüzden bunu bir FrameworkTemplate'e uyguladığınızdan emin olun. – Michael