Xamarin.forms 当我在xamarin表单中单击submit按钮时,如何将isenabled属性绑定到MVVM中的条目
当我使用mvvm体系结构以xamarin表单提交表单时,我遇到了一个问题。我的表单UI仍然可以使用,用户可以在从服务器获取数据时进行交互。我想在运行提交按钮从服务器获取数据时禁用UI元素。实际上,我想在viewmodel中绑定isEnabled属性。但我不知道如何从视图模型中将其设置为bool值,然后将其绑定到UI元素。我需要在我的set函数中添加什么,这样当有人单击submit按钮时,我的UI元素将处于非活动状态,直到服务器发出响应,用户才能进行编辑。 做什么请帮忙。这是我的密码 大宗报价Xamarin.forms 当我在xamarin表单中单击submit按钮时,如何将isenabled属性绑定到MVVM中的条目,xamarin.forms,c#-4.0,cross-platform,mvvmcross,isenabled,Xamarin.forms,C# 4.0,Cross Platform,Mvvmcross,Isenabled,当我使用mvvm体系结构以xamarin表单提交表单时,我遇到了一个问题。我的表单UI仍然可以使用,用户可以在从服务器获取数据时进行交互。我想在运行提交按钮从服务器获取数据时禁用UI元素。实际上,我想在viewmodel中绑定isEnabled属性。但我不知道如何从视图模型中将其设置为bool值,然后将其绑定到UI元素。我需要在我的set函数中添加什么,这样当有人单击submit按钮时,我的UI元素将处于非活动状态,直到服务器发出响应,用户才能进行编辑。 做什么请帮忙。这是我的密码 大宗报价 首
首先,将所有
IsEnabled
属性绑定到同一个VM属性
<Entry x:Name="entryFullName" IsEnabled="{Binding NotBusy}" ... />
<Picker x:Name="pickerGender" IsEnabled="{Binding NotBusy}" ... />
...
<Button x:Name="btnSubmit" IsEnabled="{Binding NotBusy}" ... />
最后,在保存时设置属性
private void OnSubmit()
{
if (string.IsNullOrEmpty(this.FullName))
{
this.ErrorOccurred?.Invoke(this, "Please enter full name");
return;
}
NotBusy = false;
Device.BeginInvokeOnMainThread(async () => await this.SaveProfile();
}
您可以添加一个属性IsNotSubmitting
private bool _isNotSubmitting = true;
public bool IsNotSubmitting {
get => _isNotSubmitting ;
set {
_isNotSubmitting = value;
OnPropertyChanged();
}
}
在Xaml中绑定:
<Entry x:Name="entryFullName"
Text="{Binding FullName}"
Placeholder="Full Name"
IsEnabled="{Binding IsNotSubmitting}" />
现在,您可以在方法SubmitCommand的开头设置“IsNotSubmitting=false”,并且可以在提交完成时设置“IsNotSubmitting=true”
private void OnSubmit()
{
if (string.IsNullOrEmpty(this.FullName))
{
this.ErrorOccurred?.Invoke(this, "Please enter full name");
return;
}
NotBusy = false;
Device.BeginInvokeOnMainThread(async () => await this.SaveProfile();
}
private bool _isNotSubmitting = true;
public bool IsNotSubmitting {
get => _isNotSubmitting ;
set {
_isNotSubmitting = value;
OnPropertyChanged();
}
}
<Entry x:Name="entryFullName"
Text="{Binding FullName}"
Placeholder="Full Name"
IsEnabled="{Binding IsNotSubmitting}" />