Xamarin.forms 调用转换器Ressource时形成空指针
我创建了一个转换器:Xamarin.forms 调用转换器Ressource时形成空指针,xamarin.forms,Xamarin.forms,我创建了一个转换器: namespace MoneyFox.Business.Converter { public class InverseBoolConverter: IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return !(bool) v
namespace MoneyFox.Business.Converter
{
public class InverseBoolConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return !(bool) value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return !(bool)value;
}
}
}
我在我的页面中添加了一个名称空间:
xmlns:converter="clr-namespace:MoneyFox.Business"
<ContentView.Resources>
<converter:InverseBoolConverter x:Key="inverter" />
</ContentView.Resources>
<Button Text="{Binding LoginButtonLabel}" IsVisible="{Binding IsLoggedIn, Converter={StaticResource inverter}}" Command="{Binding LoginCommand}" />
我假设我的名称空间声明是错误的,但从这里看到的应该是正确的:
此外,编译时也没有错误,因为在名称空间中找不到反相器(当我仔细地将名称空间更改为错误名称空间时,会出现这种情况)
有人能给我一个暗示,那可能是什么吗 您缺少
元素:
xmlns:converter="clr-namespace:MoneyFox.Business"
<ContentView.Resources>
<ResourceDictionary>
<converter:InverseBoolConverter x:Key="inverter" />
</ResourceDictionary>
</ContentView.Resources>
<Button Text="{Binding LoginButtonLabel}" IsVisible="{Binding IsLoggedIn, Converter={StaticResource inverter}}" Command="{Binding LoginCommand}" />
xmlns:converter=“clr命名空间:MoneyFox.Business”
为什么要尝试将转换器应用于命令绑定?@Jason对不起,我尝试了一下后插入错误。我在我最初的帖子中更正了它。感谢您指出:)您试过调试转换器代码吗?检查空值?是的,但根本不调用它。此外,我可以从IsVisible标记中删除转换器,只要Ressource定义还在,它就会崩溃。
xmlns:converter="clr-namespace:MoneyFox.Business"
<ContentView.Resources>
<ResourceDictionary>
<converter:InverseBoolConverter x:Key="inverter" />
</ResourceDictionary>
</ContentView.Resources>
<Button Text="{Binding LoginButtonLabel}" IsVisible="{Binding IsLoggedIn, Converter={StaticResource inverter}}" Command="{Binding LoginCommand}" />