You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI发布Mac应用后ListView显示空行,调试正常

问题解答

这是.NET MAUI在发布模式下针对TextCell偶发的渲染问题,属于已知的框架级问题,在.NET 7到.NET 8的部分版本中都有开发者反馈类似情况。

问题原因

发布模式下的AOT编译或链接器优化可能会干扰TextCell的文本绑定解析,尤其是当你使用{Binding .}绑定整个字符串对象时,链接器可能误判绑定路径,导致文本内容不渲染,但数据源实际是存在的(这也解释了选中功能依然正常的现象)。这种偶发现象和.NET框架、Visual Studio版本更新时的链接器逻辑变化直接相关。

解决办法

  1. 替换TextCell为自定义ViewCell
    TextCell是原生单元格的包装实现,在发布优化场景下更容易出现渲染异常,换成ViewCell+Label的组合稳定性更高,代码修改如下:
<ListView Grid.Row="4" Grid.Column="0" x:Name="searchResults"
          ItemsSource="{Binding Source={RelativeSource AncestorType={x:Type viewmodel:AwsHomeViewModel}}, Path=SearchResult}"
          SelectionMode="Single"
          SelectedItem="{Binding SelectedAwsProfile}"
          BackgroundColor="Black">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Label Text="{Binding .}" TextColor="White" BackgroundColor="Black" Padding="10,6"/>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
  1. 调整链接器行为
    在项目的.csproj文件中添加配置,限制链接器的优化范围,避免误删绑定相关逻辑:
<PropertyGroup>
    <!-- 仅链接SDK组件,保留项目自身代码的完整绑定逻辑 -->
    <MtouchLink>SdkOnly</MtouchLink>
</PropertyGroup>

注意:如果SdkOnly依然无效,可以尝试使用LinkNone(但会增加应用包体积)。

  1. 升级到.NET 8
    .NET 8对MAUI的发布模式渲染、链接器逻辑做了大量修复,升级到该版本后,这类偶发的单元格渲染问题大概率会被解决。

内容的提问来源于stack exchange,提问作者user3543420

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:13:17