В моем приложении WPF есть конвертер:
<DataGridCheckBoxColumn Header="Is Available?"
Binding="{Binding Amount, Converter={StaticResource AmountToIsAvailableConverter}}"
Width="*"/>
А код преобразователя выглядит следующим образом:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var amount = (int)value ;
......
}
Я связываю столбец со свойством модели представления, которое имеет тип int. Значение указанного выше свойства Amount передается методу «Convert» объекта «AmountToIsAvailableConverter» в качестве параметра «значение» (тип объекта «объект»). Теперь, насколько я понимаю, здесь произошел бокс, потому что значение int теперь обрабатывается как тип 'object' в записи метода Convert. Эта операция упаковки, очевидно, произошла даром, потому что в первой строке моего конвертера я распаковываю значение и возвращаю его обратно в int:
var amount = (int)value ;
Есть ли в WPF конвертер с методом Convert, который использует Generics?
public class AmountToIsAvailableConverter : IValueConverter<int>
Так что я мог бы сделать что-то подобное:
public object Convert(int value, Type targetType, object parameter, CultureInfo culture)
{......}
Важная часть здесь: int value
Есть ли способ избежать операций упаковки и распаковки, кроме добавления дополнительного свойства в мою модель представления?