I tried opening your sample to modify it to match my use case. I couldn't get it (in a short period of time) to actually run as a Xamarin.Forms app. I think if you replace the contents of these two files, you'll see the problem as you switch between one and more than one item in the ComboBox using the buttons I added. XAML:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:ComboBoxSample"
xmlns:combobox="clr-namespace:Syncfusion.XForms.ComboBox;assembly=Syncfusion.SfComboBox.XForms"
x:Class="ComboBoxSample.MainPage">
<StackLayout VerticalOptions="Start" HorizontalOptions="FillAndExpand" Padding="0,100,0,0">
<Button
Text="Load Many"
x:Name="LoadManyButton"
HorizontalOptions="Center"
Padding="10"
HeightRequest="66"
Margin="34,10,0,0"
Clicked="LoadManyClicked" />
<Button
Text="Load One"
x:Name="LoadOneButton"
HorizontalOptions="Center"
Padding="10"
HeightRequest="66"
Margin="34,10,0,0"
Clicked="LoadOneClicked" />
<combobox:SfComboBox
HeightRequest="40"
SelectionChanged="ComboBox_SelectionChanged"
x:Name="comboBox">
</combobox:SfComboBox>
</StackLayout>
</ContentPage>
and the .cs:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace ComboBoxSample
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void ComboBox_SelectionChanged(object sender, Syncfusion.XForms.ComboBox.SelectionChangedEventArgs e)
{
DisplayAlert("Selection Changed", "SelectedIndex: " + comboBox.SelectedIndex, "OK");
}
private void LoadManyClicked(object sender, EventArgs e)
{
if (comboBox.ComboBoxSource != null && comboBox.ComboBoxSource.Count > 0)
{
comboBox.ComboBoxSource.Clear();
comboBox.Text = string.Empty;
}
List<string> lsPickerCombo = new List<string>();
for (int iCntr = 0; iCntr < 5; iCntr++)
lsPickerCombo.Add("Testing " + iCntr.ToString());
comboBox.ComboBoxSource = lsPickerCombo;
}
private void LoadOneClicked(object sender, EventArgs e)
{
if (comboBox.ComboBoxSource != null && comboBox.ComboBoxSource.Count > 0)
{
comboBox.ComboBoxSource.Clear();
comboBox.Text = string.Empty;
}
List<string> lsPickerCombo = new List<string>();
lsPickerCombo.Add("Single Entry");
comboBox.ComboBoxSource = lsPickerCombo;
}
}
}