我维护一个 Silverlight 4 应用程序。当我不在办公室时,数据库结构发生了变化,删除了一个表,并将其字段合并到另一个现有表中。现在,我在创建新项目并进入其“摘要”屏幕后收到以下错误:
“值不能为空。参数名称:文本 在 System.Windows.Controls.TextBox.set_Text(字符串值)”
这只会发生在新创建的条目上,而不是下一个屏幕上信息完整的旧条目(数据从 Excel 电子表格转换并加载到数据库中)。所以,我已经缩小了范围:用于创建新记录的子窗口没有添加到表中的所有字段,因为在创建记录时某些信息不可用。谷歌搜索发现空字符串不能在 Silverlight 中传递。
摘要屏幕是通过 ddsSummaryLoadedData 域服务加载的。如果我不包括"new"字段,则不会为现有条目加载值,但新条目不会导致错误。如果我确实包含它们,则旧条目会正确加载,但新条目会出现上述错误。
是否有一种变通方法可以在需要时创建空字段,但如果存在数据(对于较旧的条目)仍会加载数据?或者子窗口是否需要重新设计?我是 Silverlight 的新手,还有很多东西要学!
最佳答案
看起来您没有使用绑定(bind)来呈现您的 View ,否则 null 值将得到妥善处理,因此如果您在代码中手动设置 Text 属性,请使用级联运算符来验证您没有提交 null值(value)。
myTextBox.Text = myModelValue.FirstName ?? string.Empty;
关于c# - 加载空字符串和 Silverlight 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5625295/