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

MAUI双向绑定从其他属性设置时多次触发问题排查

MAUI双向绑定Entry/Editor时属性Set被莫名调用的问题

本人此前从事驱动开发,刚涉足应用开发,对MAUI绑定模式理解有限。在MAUI项目中,单向绑定Label时功能正常,但将控件替换为Editor/Entry并使用双向绑定后,出现异常行为:扫码后通过正则解析为8个字段并赋值,目标属性的OnPropertyChanged会额外触发4-5次,Set方法接收到的值为扫描文本的片段组合(如"2031523969.0 LB 14")。

已尝试的排查方案

  • 将Label替换为Editor后首次发现问题,逐步缩减为仅保留一个Editor控件,问题依旧存在
  • 显式指定绑定模式为TwoWay,无效果
  • 使用Entry控件替代Editor,问题表现完全一致
  • 更换不同属性绑定Entry,所有绑定的属性均出现相同异常
  • 修改Barcode类中ScannedText的Set逻辑,先设置私有字段再统一触发OnPropertyChanged,无效
  • 在属性Set中增加数值变更判断,跳过不必要的OnPropertyChanged触发,问题仍未解决

架构说明

MauiProgram.cs将DataWedge扫描数据传递给HelperModel.ScannedText属性,通过断点确认每次扫描仅接收一次完整数据。

相关代码片段

Barcode类(单例)

public sealed class Barcode : INotifyPropertyChanged
{
    // 类代码片段
}

MainPage构造代码

Barcode barcode = Barcode.GetInstance();
public MainPage()
{
    InitializeComponent();
    this.BindingContext = barcode;
}

MainPage.xaml绑定代码

<!-- MainPage.xaml代码片段 -->
<Entry x:Name="BoxNum" Text="{Binding BoxNo, Mode=TwoWay}" .../>

目前确认问题并非无限循环,而是Set方法被莫名调用,传入值为扫描文本的片段,暂时无法定位具体原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:32:43