Формы Xamarin: получение 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();
}

Получение NotImplementedException на ConvertBack при выполнении этого кода.

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.

person Sreejith Sree    schedule 01.10.2018    source источник
comment
У вас не реализован метод convertback, поэтому нормально, что вы получите NotImplementedException.   -  person Bruno Caceiro    schedule 01.10.2018
comment
Вы явно создаете исключение NotImplementedException, поэтому, конечно, вы получаете исключение NotImplementedException. Он делает ТОЧНО то, что вы ему говорите.   -  person Jason    schedule 01.10.2018


Ответы (1)


Тип привязки по умолчанию для свойства IsToggled — «Two-way». Вот почему вызывается ваша функция ConvertBack. Вы можете просто удалить

throw new NotImplementedException();

в вашем методе ConvertBack и все будет работать нормально.

Или, если вы не хотите этого делать, вы можете явно установить режим привязки One-way

person Aritra Das    schedule 01.10.2018
comment
Если я уберу этот код, что я могу дать вместо него? Метод ConvertBack должен возвращать значение, достаточно ли возврата false? - person Sreejith Sree; 02.10.2018
comment
stackoverflow.com/questions/52604115/ - person Sreejith Sree; 02.10.2018
comment
Это сделает ваш код подверженным ошибкам, поэтому лучше переключиться в режим односторонней привязки. - person Aritra Das; 03.10.2018