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

列表页面间传值:如何为已有QMSRejection对象添加Remarks字段

解决方法:修改已有对象属性而非新增对象

你现在遇到的问题核心是:你新建了一个全新的QMSRejection实例并添加到列表,而不是直接修改从第一页传递过来的那个已有对象。

问题根源

你当前的代码逻辑是创建新对象再追加到列表,自然会新增一项:

var rej = new QMSRejection();
rej.Remarks = ent3.Text.ToString();
DataToSave.add(rej);

但你真正需要的是找到列表里已存在的那个对象,直接修改它的Remarks属性。

正确实现方式

从第一页传递过来的DataToSave列表里已经包含了一个QMSRejection对象(就是你在firstpage.xaml.cs中创建并添加的那个),你只需要获取这个已有对象并赋值即可:

// 获取列表中已有的QMSRejection对象(这里假设列表仅包含一个对象,用FirstOrDefault)
var existingRejection = DataToSave.FirstOrDefault();
if (existingRejection != null)
{
    // 直接给已有对象的Remarks属性赋值
    existingRejection.Remarks = ent3.Text.ToString();
}

为什么这样有效?

QMSRejection是引用类型,当你在第二页接收DataToSave列表时,列表里的对象和第一页创建的对象指向同一个内存地址。修改这个对象的属性会直接作用于原对象,完全不需要新增列表项。

如果后续你的列表可能包含多个QMSRejection对象,可以通过对象的唯一标识(比如Date、Grade)定位目标对象,例如:

// 根据Grade和Date定位需要修改的对象
var targetRejection = DataToSave.FirstOrDefault(r => r.Grade == GradeID && r.Date == DateTime.Now.ToShortDateString());
if (targetRejection != null)
{
    targetRejection.Remarks = ent3.Text.ToString();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 00:42:32