Xamarin编译报错:无法在Expander类型上找到附加属性Header
解决思路
修正XAML结构错误
你的代码里把xct:Expander.Header嵌套在了StackLayout内部,这是核心问题。Expander的Header是自身的直接属性,并非附加属性,不能作为子布局的元素来使用。同时ContentTemplate内部必须包裹DataTemplate,多控件也需要放在统一布局容器中,正确代码如下:<ContentPage.Content> <xct:Expander IsExpanded="true"> <xct:Expander.Header> <Label Text="{Binding Name}"/> </xct:Expander.Header> <xct:Expander.ContentTemplate> <DataTemplate> <StackLayout> <Label Text="{Binding Item.Text}"/> <Button Text="doSomething" Command="{Binding command}"/> </StackLayout> </DataTemplate> </xct:Expander.ContentTemplate> </xct:Expander> </ContentPage.Content>确认XCT版本兼容性
不同版本的Xamarin.CommunityToolkit中Expander的API存在差异:- 若使用2.0及以上稳定版,
Expander的Header是直接属性,不存在附加属性形式; - 检查NuGet包版本,尽量使用稳定版,避免预览版的API不稳定问题。
- 若使用2.0及以上稳定版,
排查命名空间与缓存问题
- 确认命名空间拼写完全正确:
xmlns:xct="http://xamarin.com/schemas/2020/toolkit",无多余空格或大小写错误; - 手动删除项目下的
bin和obj文件夹,重启IDE后再重新编译,彻底清理缓存。
- 确认命名空间拼写完全正确:
内容的提问来源于stack exchange,提问作者Mr Guliarte
相关产品推荐
相关产品推荐

