我有一个Silverlight项目(在VB中),它使用(WCF RIA)域服务,它使用POCO实体。我正在使用DataForm显示数据。我的域服务已指定InsertUser,UpdateUser,DeleteUser-methods(正确)。未设置CommandButtonsVisibility(因此我猜它有默认值)。
然而,提交按钮不可见(它不仅被禁用,它甚至不存在)。当我设置CommandButtonsVisibility=All
时,我可以使用编辑按钮,它正在工作(更改保存在db中)。我想使用默认行为。
我认识到如果在域服务中写入或不写入CRUD方法,DataForm会自动显示或隐藏按钮(我使用我的删除方法对其进行了测试)。
我做错了什么,我的Update方法没有正确定义?这就是它们的样子:
Public Sub UpdateUser(ByVal user As User)
'... update the user
End Sub
对于C#-users:
public void UpdateUser(User user)
//... update the user
End Sub
答案 0 :(得分:1)
首先是第一件事。 DataForm是我生命中遇到过的最繁琐的代码。它主要用于在视图的主/子类型中用作DataGrid的子视图。而且我猜他们只用不可维护的drap&删除生成的代码,您在介绍视频中看到很多。
现在让我们来解决你的问题: 最常见的原因是您没有将DataForm绑定到正确的后备数据存储。如果你绑定到一个项目,那么你几乎没有运气。只需实现自己的确定和取消按钮。但是,如果您正在处理集合,请确保它实现ICollectionView。 (你也可以幸运地使用ObservableCollection。)
如果您需要更多具体帮助,请发布XAML的相关部分和代码。