private void CountryPicker_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (CountryPicker.SelectedValue != null && CountryPicker.SelectedValue.ToString() == "United States")
{
StatePicker.DataSource = UsStates;
StatePicker.DisplayMemberPath = "State";
StatePicker.IsEditableMode = false;
}
else
{
StatePicker.DataSource = null;
StatePicker.IsEditableMode = true;
}
}
XAML:
<StackLayout> <Label Text="Country"/> <comboBox:SfComboBox x:Name="countryComboBox" MaximumDropDownHeight="200" SelectedIndex="0" DataSource="{Binding CountryList}" SelectionChanged="country_SelectionChanged"/> <Label Text="States"/> <comboBox:SfComboBox x:Name="stateComboBox" MaximumDropDownHeight="200" DataSource="{Binding StateList}"/> </StackLayout> XAML.cs: private void country_SelectionChanged(object sender, Syncfusion.XForms.ComboBox.SelectionChangedEventArgs e) { viewModel.StateList.Clear(); if (e.Value.ToString() == "India") { viewModel.StateList.Add("Tamilnadu"); viewModel.StateList.Add("Kerala"); viewModel.StateList.Add("Maharatra"); viewModel.StateList.Add("Karnataka"); viewModel.StateList.Add("Punjab"); } } |
private void CreateLists()
{
CountriesCollection = new ObservableCollection<Country>
{
new Country {Key = "usa", Value = "United States"},
new Country {Key = "ind", Value = "India"},
new Country {Key = "arg", Value = "Argentina"},
new Country {Key = "rus", Value = "Russia"}
};
SelectedCountry = CountriesCollection[0];
} |
var z = new Country { Key = "usa", Value = "United States" }; var index = CountriesCollection.IndexOf(p => p.Key == z.Key); SelectedCountry = CountriesCollection[index];
private void country_SelectionChanged(object sender, Syncfusion.XForms.ComboBox.SelectionChangedEventArgs e) { //if (e.Value.ToString() == "United States") if (CountryPicker.SelectedValue.ToString() == "United States") { StatePicker.DataSource = UsStates; StatePicker.DisplayMemberPath = "State"; StatePicker.IsEditableMode = false; } else { StatePicker.SelectedValue = null; StatePicker.DataSource = null; StatePicker.IsEditableMode = true; }
if (CountryPicker.SelectedValue.ToString() == "United States")
{
StatePicker.DataSource = UsStates;
StatePicker.DisplayMemberPath = "State";
StatePicker.IsEditableMode = false;
}
else
{
StatePicker.SelectedItem = null;
StatePicker.SelectedValue = null;
StatePicker.DataSource = null;
StatePicker.IsEditableMode = true;
} |
SelectedValue="{Binding State, Mode=TwoWay}" |
CountriesCollection.IndexOf(p => p.Value == z);