我正在将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;
}
}
我正在例外,国籍字段未更改为选择器项目。