如何使用数据来自,WCF RIA和POCO实体的默认CommandButton可见性?

时间:2011-09-12 21:53:23

标签: silverlight poco wcf-ria-services visibility dataform

我有一个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

1 个答案:

答案 0 :(得分:1)

首先是第一件事。 DataForm是我生命中遇到过的最繁琐的代码。它主要用于在视图的主/子类型中用作DataGrid的子视图。而且我猜他们只用不可维护的drap&删除生成的代码,您在介绍视频中看到很多。

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

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