【问题标题】:Form Validation in XamarinXamarin 中的表单验证
【发布时间】:2021-09-11 08:42:07
【问题描述】:

在我的 Xamarin 应用程序中,表单是动态的,这意味着表单是从 API 获取的。然后我从 ViewModel 中的动态表单中获取条目值,并在 multipart/form-data 中的数组中将其发送到服务器。

视图模型

public class Form
{
    public string name { get; set; }
    public string label { get; set; }
    public string Value { get; set; }
}

private ObservableCollection<Form> _form = new ObservableCollection<Form>();
public ObservableCollection<Form> Form
{
    get => _form;
    set => this.RaiseAndSetIfChanged(ref _form, value);

}

public ObservableCollection<Form> Value
{
    get => _form;
    set => this.RaiseAndSetIfChanged(ref _form, value);
}

.XAML

<StackLayout BindableLayout.ItemsSource="{Binding Form}">
    <BindableLayout.ItemTemplate>
        <DataTemplate>
            <Entry x:Name="{Binding name}"
                   Text="{Binding Value}"
                   Placeholder="{Binding label}">
            </Entry>
        </DataTemplate>
    </BindableLayout.ItemTemplate>
</StackLayout>

现在,我只想检查Form.Value(对于所有字段)是否不为空。基本上,我在.xaml 页面中有一个按钮,默认情况下是禁用的,所以如果所有字段都已填写,则启用该按钮(使用可绑定属性)。

我写了这段代码,但问题是,如果最后一个条目被填满,其他都为空,就会启用按钮。

foreach (var item in Value.ToList())
{
    if (!(string.IsNullOrEmpty(item.Value)))
    {
        IsEnabledSubmitButton = true;
    }
}

【问题讨论】:

  • 你的逻辑是倒退的。对于验证,您通常希望从表单有效的假设开始,然后检查是否有任何单个字段无效,使表单无效。
  • 抱歉解释不正确。你能指导我如何验证表格(当表格是动态的)?谢谢。

标签: c# .net xamarin xamarin.forms


【解决方案1】:

你的逻辑是倒退的。对于验证,您通常希望从表单有效的假设开始,然后检查是否有任何单个字段无效,使表单无效。

IsEnabledSubmitButton = true;

foreach (var item in Value.ToList())
{
    if (string.IsNullOrEmpty(item.Value))
    {
        IsEnabledSubmitButton = false;
    }
}

【讨论】:

    猜你喜欢
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    相关资源
    最近更新 更多