如何解决Xamarin Forms ConverterParameter XAML 错误无效的属性路径语法
我的 XAML 中有一个文本绑定,如下所示:
Text="{Binding Converter={StaticResource ColumnToCaption},ConverterParameter=-1}"
它只是获取列号并根据我存储在集合中的数据查找该列的标题应该是什么。这一直工作正常,但在对 Visual Studio/Xamarin 表单的最后一组升级之后,XAML 智能感知开始生成错误“无效的属性值”。我没有多想,因为该应用程序似乎有效。然后一些奇怪的事情开始在我的应用程序中发生,我在我的错误列表中注意到,我列出了 43 个“无效的属性值”错误(基本上是我使用 ConverterParameter 的每个地方一个)。
我仔细检查了 MS 文档以确保没有任何更改(此链接 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/data-binding/converters)并且它仍然显示将值作为数字传入是可以的。以下是 MS 文档中的示例:
<Label Text="{Binding Red,Converter={StaticResource doubletoInt},ConverterParameter=255,StringFormat='Red = {0:X2}'}" />
我只是想将其排除为问题的根源,但我似乎无法找到如何消除错误的方法。任何帮助将不胜感激。
哦,这里是转换器代码,所以你可以看到它:
public class ColumnToCaption : IValueConverter
{
public object Convert(object value,Type targettype,object parameter,CultureInfo culture)
{
string ls_ReturnValue = "";
try
{
if (System.Convert.ToInt32(parameter.ToString()) < 0)
{
if (App.gvm_AppSettings.AutoExpire)
{
ls_ReturnValue = AppResources.Time;
}
else
{
ls_ReturnValue = AppResources.CheckedIn;
}
}
else
{
ls_ReturnValue = App.gvm_AppSettings.FormFieldCaptionText(Int32.Parse(parameter.ToString()));
}
}
catch (Exception ex)
{
App.ProcessException(ex);
}
return ls_ReturnValue;
}
public object ConvertBack(object value,CultureInfo culture)
{
throw new NotImplementedException();
}
}
解决方法
你不能添加一个字符串资源吗?
...
<ContentPage.Resources>
<ResourceDictionary>
<converters:DoubleToInt x:Key="doubleToInt" />
<x:String x:Key="twoFiveFive">255</x:String>
</ResourceDictionary>
</ContentPage.Resources>
<ContentPage.Content>
...
<Label Text="{Binding Red,Converter={StaticResource doubleToInt},ConverterParameter={StaticResource twoFiveFive}}" .../>
...
</ContentPage.Content>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。