Görüntümodemde kullanıcı girdisini doğrulıyorum ve herhangi bir değer için doğrulama başarısız olursa doğrulama iletisini atarım.MVVM kullanarak bir WPF Denetimine Odaklama nasıl ayarlanır?
Odağı, yalnızca doğrulama işleminin başarısız olduğu belirli bir denetime ayarlamam gerekiyor.
Bunu nasıl başarırsınız? Sonra
<TextBox Attached:TextBoxProperties.IsFocused="{Binding IsFocused}" ... />
biz edebilirsiniz:
public static DependencyProperty IsFocusedProperty = DependencyProperty.RegisterAttached("IsFocused", typeof(bool), typeof(TextBoxProperties), new UIPropertyMetadata(false, OnIsFocusedChanged));
public static bool GetIsFocused(DependencyObject dependencyObject)
{
return (bool)dependencyObject.GetValue(IsFocusedProperty);
}
public static void SetIsFocused(DependencyObject dependencyObject, bool value)
{
dependencyObject.SetValue(IsFocusedProperty, value);
}
public static void OnIsFocusedChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
TextBox textBox = dependencyObject as TextBox;
bool newValue = (bool)dependencyPropertyChangedEventArgs.NewValue;
bool oldValue = (bool)dependencyPropertyChangedEventArgs.OldValue;
if (newValue && !oldValue && !textBox.IsFocused) textBox.Focus();
}
Bu özellik aşağıdaki gibi kullanılır: MVVM metodolojisine bağlı kalarak bir UI olay kullanmak istediğinizde
Konsept: AttachedBehavior veya Custom Control yapın - true olarak ayarlandığında bu kontrole odaklandığınızda ve false değerine ayarladığınızda yeni bir bağımlılık özelliğine sahip olursunuz; – bland
Kullanıcı girişi için, kontrol zaten odaklanmış durumda, değil mi? Kontrol değerlerinin programatik değişimleri için, sadece bir kontrolün doğrulanamamasını nasıl sağlıyorsunuz? Birden çok kontrol doğrulamayı geçersiz kılacak olursa, odaklanmak için seçilen kişi hangisidir? – elgonzo