未找到IMGSource相关属性/绑定属性/事件或类型不匹配问题求助
问题修复方案
核心错误原因
你定义BindableProperty时第三个参数传错了——它应该是自定义控件(也就是你的Accordion类)的类型,而非typeof(Uri),这是导致系统找不到IMGSource属性的根本问题。
具体修复步骤
- 修正BindableProperty定义
把原代码里的错误定义替换成以下内容:
// 第三个参数改为自定义控件Accordion的类型,属性名遵循MAUI规范命名为XXXProperty public static readonly BindableProperty IMGSourceProperty = BindableProperty.Create(nameof(IMGSource), typeof(Uri), typeof(Accordion)); public Uri IMGSource { get { return (Uri)GetValue(IMGSourceProperty); } set { SetValue(IMGSourceProperty, value); } }
- 验证Image绑定的上下文引用
确保自定义ContentView的根元素设置了正确的x:Name,保证绑定能找到目标属性:
<!-- 给自定义ContentView根节点设置x:Name="This" --> <ContentView x:Class="你的命名空间.Accordion" x:Name="This"> <Image Source="{Binding Source={x:Reference This}, Path=IMGSource}" Aspect="AspectFill"/> </ContentView>
- 匹配绑定数据类型
如果后端返回的RowImg是字符串格式的URL,需要添加转换器将其转为Uri类型:
- 先在XAML中引用转换器:
<control:Accordion IMGSource="{Binding RowImg, Converter={StaticResource StringToUriConverter}}" />
- 实现转换器代码:
public class StringToUriConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is string url && Uri.TryCreate(url, UriKind.Absolute, out var uri)) return uri; return null; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
额外检查项
- 确认MainPage.xaml中已正确引用自定义控件的命名空间:
xmlns:control="clr-namespace:你的控件所在命名空间"
- 检查
RowImg的绑定上下文是否正确,确保数据能正常传递到自定义控件。
内容的提问来源于stack exchange,提问作者Abhi
相关产品推荐
相关产品推荐

