WPF中的通用转换器

时间:2018-04-27 15:01:03

标签: c# wpf ivalueconverter boxing unboxing

我的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

除了在视图模型中添加其他属性之外,有没有办法避免装箱和拆箱操作?

0 个答案:

没有答案