我在评论文本中需要使用转换器时遇到问题。
我得到:"找不到关键TextToBoolConverter"的StaticResource。
转换器:
namespace myMood.Helpers
{
public class TextToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (value != null)
if (!(value is string)) return true;
return string.IsNullOrWhiteSpace(value as string) ? false : true;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
查看:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="myMood.Views.Entries"
Icon="ic_view_headline_white_24dp.png"
xmlns:converters="clr-namespace:myMood.Helpers"
xmlns:viewModels="clr-namespace:myMood.ViewModels">
...
<Label Text="{Binding Comment}"
IsVisible="{Binding Comment, Converter={StaticResource TextToBoolConverter}}">
答案 0 :(得分:3)
除非您已将其添加为App资源,否则您应该将转换器声明为您要使用它的每个页面上的本地资源。
只需将您的XAML更改为:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="myMood.Views.Entries"
Icon="ic_view_headline_white_24dp.png"
xmlns:converters="clr-namespace:myMood.Helpers"
xmlns:viewModels="clr-namespace:myMood.ViewModels">
<ContentPage.Resources>
<ResourceDictionary>
<converters:TextToBoolConverter x:Key="TextToBoolConverter" />
</ResourceDictionary>
</ContentPage.Resources>
...
<Label Text="{Binding Comment}"
IsVisible="{Binding Comment, Converter={StaticResource TextToBoolConverter}}"/>
...
</ContentPage>