在XAML中绑定以下错误:
System.FormatException: Indexer did not contain closing bracket
我如何在模型内提供类和属性名称作为字符串值。ERRORS[带有点的字符串值]
这有效
Text="{Binding User.Errors[Forename]}"
尝试添加dot
的字符串值时,这不是<Label Text="{Binding User.Errors[UserDetail.PhoneNumber]}" />
拥有点使我可以在C#侧具有内部类和属性名称的范围。我可以用A 替换DOT,但后来我假设我必须构建一些转换器以将 更改为dot时,当它到达c#side时?
?不确定是否还有其他类型的格式或方法可以实现此目的,而无需写出其他转换器逻辑?
使用源:Xamarin的XAML解析器显然不允许这样的语法:它不能正确解析路径,而只是将整个路径字符串按.
分配。为了解决此限制,我建议一个最小的价值转换器,使您可以将.
保留以供成员访问:
// error handling and boilerplate omitted
public class ErrorConverter : IValueConverter
{
public object Convert (object value, Type targetType,
object parameter, CultureInfo culture)
{
return ((ErrorCollection) value)[(string)parameter] ;
}
}
然后在这样的绑定中使用它:
<Label Text="{Binding User.Errors, Converter={StaticResource ErrorConverter},
ConverterParameter='UserDetail.PhoneNumber'}" />