微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xamarin Forms ConverterParameter XAML 错误无效的属性路径语法

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?