How to get selected item using DataFormAutoCompleteItem and MVVM
I have the following SfDataForm on which I would like to use DataFormAutoCompleteItem. The values are populated correctly but how can identify the selected item when using DataFromAutoCompleteItem in a MVVM
<dataForm:SfDataForm
AutoGenerateItems="False"
CommitMode="PropertyChanged"
DataObject="{Binding Receipt}"
Grid.Row="1"
LayoutType="TextInputLayout"
ValidationMode="PropertyChanged"
x:Name="ReceiptDataForm">
<dataForm:SfDataForm.LabelTextStyle>
<dataForm:DataFormTextStyle FontAttributes="None" TextColor="{AppThemeBinding Light={StaticResource TextLightSecondary}, Dark={StaticResource TextDarkSecondary}}" />
</dataForm:SfDataForm.LabelTextStyle>
<dataForm:SfDataForm.EditorTextStyle>
<dataForm:DataFormTextStyle FontAttributes="None" TextColor="{AppThemeBinding Light={StaticResource TextLight}, Dark={StaticResource TextDark}}" />
</dataForm:SfDataForm.EditorTextStyle>
<dataForm:SfDataForm.Items>
<dataForm:DataFormAutoCompleteItem
DisplayMemberPath="Name"
FieldName="Store.Name"
ItemsSource="{Binding Path=StoreNames}"
SelectedValuePath="Id" />
<dataForm:DataFormDateItem FieldName="TransactionDate" />
<dataForm:DataFormNumericItem
AllowNull="False"
Culture="{x:Static sys:CultureInfo.InvariantCulture}"
FieldName="TotalAmount" />
<dataForm:DataFormTextItem FieldName="CurrencyCode" />
<dataForm:DataFormTextItem FieldName="Store.Country" />
</dataForm:SfDataForm.Items>
</dataForm:SfDataForm>
Hi Mihai,
Thank you for reaching out to us. You can obtain the selected item from `DataFormAutoCompleteItem` by handling the `SelectionChanged` event of `SfAutoComplete`. This involves using the `DataFormItemManager` class and overriding its `InitializeDataEditor` method. This method is invoked when a data editor is initialized for a form item. Within `InitializeDataEditor`, you can utilize the properties and events specific to the `AutoComplete` item (`SfAutocomplete `) as needed.
Here’s an example:
|
this.dataForm.ItemManager = new DataFormItemManagerEditorExt();
public class DataFormItemManagerEditorExt : DataFormItemManager { public override void InitializeDataEditor(DataFormItem dataFormItem, View editor) { if (editor is SfAutocomplete autoComplete) { autoComplete.SelectionChanged += AutoComplete_SelectionChanged; } }
private void AutoComplete_SelectionChanged(object? sender, Syncfusion.Maui.Inputs.SelectionChangedEventArgs e) { var selectedItem = e.AddedItems?[0] as StoreData; } }
|
For your convenience, we’ve attached a sample demonstrating this. Please review it and let us know if you need any further assistance.
Regards,
Vidyalakshmi M.
Attachment: AutoCompleteEditorSelectionChanged_8bfcb565.zip
- 1 Reply
- 2 Participants
-
MA Mihai Alexandru Dumitru
- Feb 25, 2025 07:14 AM UTC
- Feb 26, 2025 04:27 PM UTC