Xamarin.forms 将URL绑定到自定义SVG容器';s可绑定属性
我一直在使用代码布局为Xamarin表单项目创建SVG容器。它工作得很好,我重新配置它从远程URL读取图像Xamarin.forms 将URL绑定到自定义SVG容器';s可绑定属性,xamarin.forms,Xamarin.forms,我一直在使用代码布局为Xamarin表单项目创建SVG容器。它工作得很好,我重新配置它从远程URL读取图像 ResourceId来自上述来源: 公共静态只读BindableProperty SvgUriProperty=BindableProperty.Create( “资源ID”, 类型(字符串), 类型(SvgUriContainer), 默认值(字符串), 属性更改:重新绘制画布); 公共字符串资源ID { get=>(字符串)GetValue(SvgUriProperty); set=>
ResourceId
来自上述来源:
公共静态只读BindableProperty SvgUriProperty=BindableProperty.Create(
“资源ID”,
类型(字符串),
类型(SvgUriContainer),
默认值(字符串),
属性更改:重新绘制画布);
公共字符串资源ID
{
get=>(字符串)GetValue(SvgUriProperty);
set=>SetValue(SvgUriProperty,value);
}
但是,我似乎无法在运行时在XAML中绑定该URL:
该绑定返回一个字符串,其余绑定工作正常。以这种方式进行绑定的任何尝试都会导致生成错误:
No property, bindable property, or event found for 'ResourceId', or mismatching type between value and property.
无论我在创建BindableProperty
的容器逻辑中做什么,错误都是相同的,并且在XAML中。我在XAML中的语法是否有误?是因为Binding
在构建时是BindingExtension
(不是字符串)吗
注意:如果我用字符串/URL替换绑定,那么一切都正常
注意:如果我将
ResourceId
的类型设置为object
,我可以通过生成错误获取,但字符串当然无法解析。您是否可以尝试将bindableProperty修改为以下所述的标准格式:
Xamarin需要一个属性命名约定。共享ResourceID属性的代码将非常有用。应该包括在内。很高兴看到我的博客文章实际上是在帮助别人!:)您共享的代码在我看来很好,甚至可以在我这边编译。你能再分享一些代码吗?e、 g.您的视图模型、控件(如果您做了任何更改)或xaml本身?@AlexPshul cool-是的,很棒的博客文章!我不能真正共享代码,但是我已经在一旁构建了一个项目来隔离代码。今晚我将尝试复制并分享源代码。@AlexPshul我能够在一个简单得多的项目中使其正常工作。对于露齿而笑的人和任何感兴趣的人,我都推它。基本上是SvgFx代码的一个稍加修改的克隆。我将不得不对我的代码进行一些重构,以使绑定正常工作……我尝试过了,尽管我的绑定问题在别处。不过,感谢命名约定指针!如果你能分享你的项目,我可以帮你测试。
public static readonly BindableProperty SvgUriProperty = BindableProperty.Create(
"SvgUri",
typeof(string),
typeof(EventToCommandBehavior),
"test",
propertyChanged: RedrawCanvas);
public string SvgUri
{
get => (string)GetValue(SvgUriProperty);
set => SetValue(SvgUriProperty, value);
}