MVVM Textbox не работает привязка метода к методу - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть метод в моей модели представления.Как я могу связать этот метод со свойством textbox.gotfocus.

Моя часть XAML:

<TextBox Style=
    "{StaticResource TextBoxHadnigPanel}"
    GotFocus="{Binding GotFocusCustomerNameMethod}"
    LostFocus="{Binding LostFocusCustomerNameMethod}"
    x:Name="TextBoxCustomerName"
    Grid.Row="0"
    Grid.Column="1"
    MaxLength="16"
    Margin="10" />

Как связать эти свойства LostFocus и GotFocus?

Кто-нибудь?Заранее спасибо

1 Ответ

0 голосов
/ 20 февраля 2019

Вы не можете связать метод в WPF.

Альтернатива: Вы можете использовать Поведение для TextBox с MVVM.

Вам нужна ссылка на System.Windows.Interactivity для достиженияthis.

public class TextBoxFocusBehavior : Behavior<TextBox>
{
    #region Overrides of Behavior

    protected override void OnAttached()
    {
        AssociatedObject.GotFocus += AssociatedObject_GotFocus;
        AssociatedObject.LostFocus += AssociatedObject_LostFocus;
        base.OnAttached();
    }

    private void AssociatedObject_LostFocus(object sender, RoutedEventArgs e)
    {
        //TODO Your LostFocus Method here.
    }

    private void AssociatedObject_GotFocus(object sender, RoutedEventArgs e)
    {
        //TODO Your GotFocus Method here.
    }

    #endregion
}

Xaml:

Вам нужна ссылка в файле xaml:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:behaviors="clr-namespace:YourNamespace"



<TextBox Style="{StaticResource TextBoxHadnigPanel}"
    x:Name="TextBoxCustomerName"
    Grid.Row="0"
    Grid.Column="1"
    MaxLength="16"
    Margin="10">
    <i:Interaction.Behaviors>
        <behaviors:TextBoxFocusBehavior />
    </i:Interaction.Behaviors>
</TextBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...