public class CustomDropDownEditor : DataFormDropDownEditor
{
DataFormDropDownItem dropDownItem;
SfDataForm sfDataForm;
public CustomDropDownEditor(SfDataForm dataForm) : base(dataForm)
{
this.sfDataForm = dataForm;
}
protected override void OnInitializeView(DataFormItem dataFormItem, SfComboBox view)
{
base.OnInitializeView(dataFormItem, view);
view.IsEditableMode = true;
view.Unfocused += View_Unfocused;
dropDownItem = dataFormItem as DataFormDropDownItem; //Get DropDown instance to use it in unfocused event
}
private void View_Unfocused(object sender, FocusEventArgs e)
{
var dropDown = sender as SfComboBox;
var text = dropDown.Text;
var selectedItem = dropDown.SelectedItem;
if (selectedItem == null || (selectedItem as Details)?.Name?.ToString() != text)
{
dropDownItem.ItemsSource.Add(new Details { Name = text }); //Add input value to ItemsSource.
(DataForm.DataObject as Address).Country = text; // Update property value, here contry is the dropdown field.
sfDataForm.UpdateEditor("Country"); // Update editor, it is required if you have used validation.
}
}
} |
public class CustomDropDownEditor : DataFormDropDownEditor
{
public CustomDropDownEditor(SfDataForm dataForm) : base(dataForm)
{
}
protected override void OnInitializeView(DataFormItem dataFormItem, SfComboBox view)
{
base.OnInitializeView(dataFormItem, view);
view.TextColor = Color.Blue;
view.DropDownTextColor = Color.Red;
view.IsEditableMode = true;
}
}
dataForm.RegisterEditor("DropDown", new CustomDropDownEditor(dataForm));
dataForm.RegisterEditor("Country", "DropDown"); |