Xamarin形式:获取NotImplementedException

时间:2018-10-01 11:39:35

标签: xamarin.forms uiswitch notimplementedexception

我的列表视图中有一个开关。在xaml中,为IsToggled属性添加了一个转换器:

<Switch
          IsToggled="{Binding userProfileTO.userId, Converter={StaticResource isToggledConverter}}"
          HorizontalOptions="EndAndExpand"
          VerticalOptions="CenterAndExpand"/>

转换器代码:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    bool toggle = false;
    // My Codes
    return toggle;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
    throw new NotImplementedException();
}

在运行此代码时在ConvertBack上获取NotImplementedException。

Exception thrown: 'System.NotImplementedException' in Myprojectname.dll
An exception of type 'System.NotImplementedException' occurred in Myprojectname.dll but was not handled in user code
The method or operation is not implemented.

1 个答案:

答案 0 :(得分:1)

IsToggled属性的默认绑定类型是“ Two-way”。 这就是为什么您的ConvertBack函数被调用的原因。 您只需删除

throw new NotImplementedException();

使用您的ConvertBack方法,一切正常。

或者,如果您不想这样做,则可以将绑定模式显式设置为One-way