Xamarin未为';找到任何属性、可绑定属性或事件;Sku';,或者值和属性之间的类型不匹配

Xamarin未为';找到任何属性、可绑定属性或事件;Sku';,或者值和属性之间的类型不匹配,xamarin,xamarin.forms,Xamarin,Xamarin.forms,在我的xamarin项目中,我有一个自定义按钮控制器: [XamlCompilation(XamlCompilationOptions.Compile)] 公共类AddToCartButton:按钮 { public static readonly BindableProperty SkuPoperty=BindableProperty.Create(nameof(Sku)、typeof(ApiModels.skudailmodel)、typeof(AddToCartButton)); 公共A

在我的xamarin项目中,我有一个自定义按钮控制器:

[XamlCompilation(XamlCompilationOptions.Compile)]
公共类AddToCartButton:按钮
{
public static readonly BindableProperty SkuPoperty=BindableProperty.Create(nameof(Sku)、typeof(ApiModels.skudailmodel)、typeof(AddToCartButton));
公共ApiModels.Sku详细模型Sku
{
获取{return(ApiModels.skutailmodel)GetValue(SkuPoperty);}
set{SetValue(SkuPoperty,value);}
}
公共AddToCartButton()
{
this.Clicked+=AddToCartButton\u Clicked;
}
公共AddToCartButton(ApiModels.SkuDetailModel sku)
{
this.Sku=Sku;
this.Clicked+=AddToCartButton\u Clicked;
}
私有异步void AddToCartButton_已单击(对象发送方,事件参数e)
{
var response=await Helpers.ApiHelper.CurrentAccess.AddToCart(新列表(){
新的ApiModels.CartItem(){
ItemCode=Sku.ItemCode,
数量=1
}
});
//句柄添加模态
}
}
这与我为ContentView创建BindableProperties的方法完全相同,您也有类似的方法

在引用此控制器的xaml中,我有:


此行导致我的构建失败,错误如下:
严重性代码描述项目文件行抑制状态
错误位置44:44。找不到“Sku”的属性、可绑定属性或事件,或者值和属性之间的类型不匹配……

我似乎不明白为什么我会得到它。我所有的类型都是一致的。我尝试绑定的对象是这样完成的: 公共部分类视图:ContentView { public ApiModels.SkuDetailModel Sku{get;set;}

public sku视图(ApiModels.skudailmodel sku、string baseUrl、ApiModels.SimpleUser用户)
{
BindingContext=这个;
Sku=Sku;
初始化组件();
根据对xaml头的请求,这里是整个xaml文件



在属性名称中,您有一个输入错误:

public static readonly BindableProperty SkuPoperty = BindableProperty.Create(nameof(Sku), typeof(ApiModels.SkuDetailModel), typeof(AddToCartButton));
SkuPoperty=>SkuProperty

编辑: 为了详细说明,Xamarin要求具有PropertyName属性命名约定:

您可以发布xaml标题吗?@Greggz我已经为您包含了整个文件,您可以这样尝试吗
xmlns:local=“clr namespace:myApp.Controls;assembly=myApp”
@Greggz试过了,没什么区别。除了,我已经失去了对
Sku
可绑定属性的智能,如果这很重要的话;SkuView初始化正确了吗?不是。他到处都使用
Poperty
这实际上是正确的答案。显然,Xamarin需要为这些属性指定一个特定的命名约定。愚蠢,甚至愚蠢呃,我到处都有适当的参考资料。很高兴它能起作用。尽管它很愚蠢。故事的寓意是拼写检查。@Greggz实际上,我没有注意到他在任何地方都使用了
Poperty
,只是第一个:D,是的,我的财产名称拼写正确,符合适当的惯例,但经过检查后仍然不起作用这个答案我把我的属性名从EntryTextProperty改为Just TextProperty,现在它可以工作了。