1

我有一个 Silverlight 项目(在 VB 中),它使用一个(WCF RIA)域服务,它使用 POCO 实体。我正在使用 DataForm 显示数据。My Domain Service 指定了 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
4

1 回答 1

1

第一件事是第一件事。DataForm 是我一生中遇到过的最错误的代码。它主要被设计为在主/子类型的视图中用作 DataGrid 的子视图。而且我猜他们只使用生成的不可维护的拖放代码对其进行了测试,您可以在介绍视频中看到很多。

现在让我们解决您的问题:最常见的原因是您没有将 DataForm 绑定到正确的支持数据存储。如果您绑定到单个项目,那么您非常不走运。只需实现您自己的确定和取消按钮。但是,如果您正在处理一个集合,那么请确保它实现了 ICollectionView。(你也可以幸运地使用 ObservableCollection。)

如果您需要更具体的帮助,请在后面发布您的 XAML 和代码的相关部分。

于 2011-09-30T14:21:23.807 回答