xamarin形式:如何确保选择器不为null或为空?

时间:2019-06-11 20:23:21

标签: c# xamarin xamarin.forms picker

现在,用户可以跳过选择器选择。如何确保用户在转到下一个选择器之前选择了一个选择?例如,如果第二选择器为空,则无法移动到第三选择器。

im尝试了if else语句,但是我不知道该放在哪里,也许应该有更好的方法呢?

3 个答案:

答案 0 :(得分:1)

您可以有一个简单的逻辑,像这样。在每个选择器中,检测到焦点事件,然后检查前一个事件的值/ selectedindex是否保持不变,然后应用逻辑/弹出窗口等。

YourPicker2.Focused += (object sender, EventArgs e) => 
{
    if(YourPicker1.SelectedIndex==-1)
    {
        DisplayAlert("Please fill the XXX picker");
    }

};

答案 1 :(得分:1)

这里是您问题的样本。 Xaml 中有选择器:

X_test_tfidf = tfidf_vect_ngram.transform(X_test) # X_test can be the entire column if you are loading from a separate file
result = loaded_model.predict(X_test_tfidf)
score = loaded_model.score(X_test_tfidf, y_test)

ContentPage 中,设置<Picker x:Name="PickerOne" Title="Select First" TitleColor="Red"> <Picker x:Name="PickerTwo" Title="Select Second" TitleColor="Green" IsEnabled = "False"> <Picker x:Name="PickerThree" Title="Select Three" TitleColor="Blue" IsEnabled = "False">

ItemSource

并添加var monkeyList = new List<string>(); monkeyList.Add("Baboon"); monkeyList.Add("Capuchin Monkey"); monkeyList.Add("Blue Monkey"); monkeyList.Add("Squirrel Monkey"); monkeyList.Add("Golden Lion Tamarin"); monkeyList.Add("Howler Monkey"); monkeyList.Add("Japanese Macaque"); PickerOne.ItemsSource = monkeyList; PickerTwo.ItemsSource = monkeyList; PickerThree.ItemsSource = monkeyList; 方法:

SelectedIndexChanged

答案 2 :(得分:1)

您应该使用MVVM模式和模型绑定。因此,您可以根据模型而不是每个UI控件检查验证。 一个简单的指南可以在这里找到:https://www.codeproject.com/Articles/1274851/Xamarin-Forms-Validations-Made-Simple