Я использую формы Xamarin для мобильного приложения.Я использую шаблон MVVM.Я использовал Syncfusion DataForm, чтобы отобразить элементы управления формы из моего объекта.Я сталкиваюсь с проблемой, когда хочу изменить одно поле в качестве сборщика.Мой объект -
public class User{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Nationality { get; set; }
}
Мой код Xaml -
<sf:SfDataForm
DataObject="{Binding User}"
LabelPosition="Top"
IsReadOnly="{Binding EditMode, Converter={StaticResource NegateBooleanConverter}}"
>
<sf:SfDataForm.Behaviors>
<behaviors:EventToCommandBehavior EventName="AutoGeneratingDataFormItem" Command="{Binding OnAutoGeneratingDataFormItem}"/>
</sf:SfDataForm.Behaviors>
</sf:SfDataForm>
Ниже показана модель события, в которой я конвертирую национальность в элемент выбора.
private void HandleAutoGeneratingDataFormItem(object obj)
{
var e = (AutoGeneratingDataFormItemEventArgs)obj;
if (e.DataFormItem != null && e.DataFormItem.Name == "Nationality")
{
var picker = new DataFormPickerItem
{
Name = "Nationality",
Editor = "Picker",
ItemsSource = ListHelpers.GetCountriesList(),
DisplayMemberPath = "CountryCode",
ValueMemberPath = "CountryName"
};
e.DataFormItem = picker;
}
}
Iполучаю исключение, и поле национальности не меняется на элемент выбора.