使用显式强制转换,因为除非错误使用,否则您始终知道value
将是布尔值。通常不使用ConvertBack
,因为它通常没有意义。
我有一个布尔属性,我想将其否定值(!value)绑定到按钮,但是每次我在xaml标记中配置转换器时,它都会无例外地终止应用程序,我没有在应用程序中心发现任何错误。如果我删除此部分, Converter={StaticResource inverter}}
,则所有内容均可再次使用,但无法进行转换。
我的xaml:
<ContentPage.Resources> <local:BooleanConverter x:Key="inverter" /> ... <ContentPage.Resources> ... <controls:FrameButton IsEnabled="{Binding IsBusy, Converter={StaticResource inverter}}" Margin="5" CornerRadius="5">
还有我的BooleanConverter.cs:
using System;
using Xamarin.Forms;
public class BooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return !System.Convert.ToBoolean(value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return !System.Convert.ToBoolean(value);
}
}
我有一个布尔属性,我想将其否定值(!value)绑定到按钮,但是每次我在xaml标记中配置转换器时,它都会无例外地终止应用程序,我没有...]]] >>
使用显式强制转换,因为除非错误使用,否则您始终知道value
将是布尔值。通常不使用ConvertBack
,因为它通常没有意义。
using System;
using Xamarin.Forms;
public class BooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return !((bool)value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
使用显式强制转换,因为除非错误使用,否则您始终知道value
将是布尔值。通常不使用ConvertBack
,因为它通常没有意义。