如何将默认 CommandButtonsVisibility 与 Dataform、WCF RIA 和 POCO Entites 一起使用?
-
29-10-2019 - |
题
我有一个 Silverlight 项目(在 VB 中),它使用(WCF RIA)域服务,该服务使用 POCO 实体。我正在使用 DataForm 显示数据。我的域服务已指定(正确)InsertUser、UpdateUser、DeleteUser 方法。CommandButtonsVisibility 未设置(所以我猜它有默认值)。
但是,提交按钮不可见(它不仅被禁用,甚至不存在)。当我设置 CommandButtonsVisibility=All
我可以使用编辑按钮并且它正在工作(更改保存在数据库中)。但我想使用默认行为。
我认识到如果在域服务中写入或未写入 CRUD 方法,DataForm 会自动显示或隐藏按钮(我用删除方法对其进行了测试)。
我做错了什么,我的更新方法定义不正确吗?它们是这样的:
Public Sub UpdateUser(ByVal user As User)
'... update the user
End Sub
对于 C# 用户:
public void UpdateUser(User user)
//... update the user
End Sub
解决方案
第一件事就是第一件事。DataForm 是我一生中遇到过的最有问题的代码。它主要设计为用作 DataGrid 的子视图,在视图的主/子类型中。我猜他们只是用生成的不可维护的拖放代码对其进行了测试,您在介绍视频中经常看到这种代码。
现在让我们解决您的问题:最常见的原因是您没有将 DataForm 绑定到正确的支持数据存储。如果您绑定到单个项目,那么您就很不走运了。只需实现您自己的“确定”和“取消”按钮即可。但如果您正在处理集合,请确保它实现 ICollectionView。(您也可能会幸运地使用 ObservableCollection。)
如果您需要更具体的帮助,请发布 XAML 的相关部分和后面的代码。
不隶属于 StackOverflow