Dyikot
@Dyikot

Почему проиходит множественные вызовы конвентера?

При добавлении программно в ObservableCollection привязанную к ItemSource вызов конвернтра происходит корректно. Но вот почему-то при ручном вводе в DataGrid происходит 2 вызова метода ConvertBack и 5 вызова метода Convert. Разве так должно быть?
65e5b274614f6067450226.png
Для иллюстрации числа вызовов сделал переменные convertAmount и convertBackAmount.
Конвентер

public class StringToIntConveter : IValueConverter
	{
		int convertAmount = 0;
		int convertBackAmount = 0;
		object? current;
		string? curentText;

		public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
		{
			current ??= value;
			if(current == value)
			{
				convertAmount++;
			}
			else
			{
				current = value;
				convertAmount = 1;
			}

			return ((ITableColumn)value).Value;
		}

		public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
		{
			curentText ??= (string)value;
			if (curentText == value)
			{
				convertBackAmount++;
			}
			else
			{
				curentText = (string)value;
				convertBackAmount = 1;
			}

			return new IntColumn { Value = (string)value };
		}
	}

  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы