Внимание набора на TextBox в WPF из модели представления

Я использую этот GPU в своей машине (окна двойной загрузки и Ubuntu), но не играю ни в какие игры с ним (я оставляю это Windows на данный момент). У меня нет проблем с по нагреванию или незначительным сбоям, все гладко; вентиляторы, кажется, вращаются, когда теплый и вниз, когда прохладный, таким образом, все должно быть хорошо для Вас.

124
задан ASh 21 October 2019 в 14:41
поделиться

3 ответа

Позвольте мне ответить на ваш вопрос в трех частях.

  1. Мне интересно, что в вашем примере означает "cs.txtCompanyID"? Это элемент управления TextBox? Если да, то вы ошиблись. Вообще говоря, не рекомендуется иметь какую-либо ссылку на пользовательский интерфейс в вашей ViewModel. Вы можете спросить "Почему?" но это еще один вопрос для публикации в Stackoverflow:).

  2. Лучший способ отследить проблемы с Focus - это ... отладка исходного кода .Net. Без шуток. Это много раз экономило мне много времени. Чтобы включить отладку исходного кода .net, обратитесь к блогу Шона Брука .

  3. Наконец, общий подход, который я использую для установки фокуса из ViewModel, - это прикрепленные свойства. Я написал очень простое вложенное свойство, которое можно установить на любом UIElement. И его можно связать, например, со свойством ViewModel IsFocused. { public static bool GetIsFocused (объект DependencyObject) { return (bool) obj.GetValue (IsFocusedProperty); } public static void SetIsFocused (объект DependencyObject, значение типа bool) { obj.SetValue (IsFocusedProperty, значение); } общедоступный статический только для чтения DependencyProperty IsFocusedProperty = DependencyProperty.RegisterAttached ( "IsFocused", typeof (bool), typeof (FocusExtension), новый UIPropertyMetadata (false, OnIsFocusedPropertyChanged)); частный статический void OnIsFocusedPropertyChanged ( DependencyObject d, DependencyPropertyChangedEventArgs e) { var uie = (UIElement) d; если ((bool) e.NewValue) { uie.Focus (); // Плевать на ложные значения. } } }

    Теперь в вашем представлении (в XAML) вы можете привязать это свойство к вашей ViewModel:

     
    

Надеюсь, это поможет :). Если это не относится к ответу №2.

Ура.

253
ответ дан 24 November 2019 в 01:03
поделиться
System.Windows.Forms.Application.DoEvents();
Keyboard.Focus(tbxLastName);
-7
ответ дан 24 November 2019 в 01:03
поделиться

Проблема заключается в том, что после установки IsUserNameFocused в true, оно никогда не станет false. Это решает проблему, обрабатывая GotFocus и LostFocus для элемента FrameworkElement.

У меня были проблемы с форматированием исходного кода, поэтому вот ссылка

2
ответ дан 24 November 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: