我的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 ;
......
}
我将列绑定到视图模型的属性Amount,其类型为int。上述Amount属性的值将转移到&#39; Convert&#39; AmountToIsAvailableConverter&#39;的方法作为&#39;值&#39;参数(类型为&#39;对象&#39;)。现在,据我所知,拳击已经发生在这里,因为int值现在被视为一个&#39;对象&#39;在Convert方法条目中键入。那拳击操作显然一无所获,因为在我的转换器的第一行,我取消了该值并将其转换回int:
var amount = (int)value ;
WPF中是否有转换器使用泛型?
public class AmountToIsAvailableConverter : IValueConverter<int>
所以我可以这样做:
public object Convert(int value, Type targetType, object parameter, CultureInfo culture)
{......}
这里重要的部分是:int value
除了在视图模型中添加其他属性之外,有没有办法避免装箱和拆箱操作?