android - 在 Xamarin 中的登录按钮上实现 MVVM
问题描述
我有一个关于 MVVM 模式的问题。我有一个带有按钮的页面。我为 Button 创建了一个 LoginCommand 和一个 ViewModel 来处理该命令。现在,如果 LoginCommand 成功,我希望按钮更改为注销按钮。
我刚开始使用 MVVM,所以我不知道如何开始处理这个问题。
谢谢,雅各布
解决方案
您还可以在 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;
});
推荐阅读
- html - 如何在 HTML 中的一个元素上使用多个样式规则?
- java - How to remove column from arrayList or array in java?
- html - Is there a way to ensure unicode symbols are visible when using kable table within print statement - when knitting to html
- python - Negative Log Likelihood for Censored Data
- python - How to get Max output from a while loop
- python - 有没有办法通过 Pyperclip 复制我的 VS Code Snippet 字符串
- r - 从 XML 文件中提取值以通过不同方式在 R 中进行分析
- android - 如何在调试模式下测试销毁的生命周期?
- python - 路径有空格时无法导入
- reactjs - 使用 React Native 获取大量数据