首页 > 解决方案 > 在 Xamarin 中的登录按钮上实现 MVVM

问题描述

我有一个关于 MVVM 模式的问题。我有一个带有按钮的页面。我为 Button 创建了一个 LoginCommand 和一个 ViewModel 来处理该命令。现在,如果 LoginCommand 成功,我希望按钮更改为注销按钮。

我刚开始使用 MVVM,所以我不知道如何开始处理这个问题。

谢谢,雅各布

标签: androidxamarinmvvm

解决方案


您还可以在 Button 上使用 DataTrigger。根据属性“Authenticated”,按钮的文本属性可以是“Login”或“Logout”。

Xaml 代码:

<Button 
    Text="Login" 
    HorizontalOptions="CenterAndExpand"
    VerticalOptions="CenterAndExpand"
    Command="{Binding Login}">
    <Button.Triggers>
        <DataTrigger TargetType="Button" 
                     Binding="{Binding Authenticated}" 
                     Value="True">
           <Setter Property="Text" Value="Logout" />
        </DataTrigger>
    </Button.Triggers>
</Button>

查看型号代码:

private bool _authenticated;

    public bool Authenticated
    {
        get => _authenticated;
        set
        {
            _authenticated = value;
            OnPropertyChanged(nameof(Authenticated));
        }
    }

    public ICommand Login => new Command(() =>
    {
        //Logic to authenticate user
        Authenticated = !Authenticated;
    });

推荐阅读