1

POCOエンティティを使用する(WCF RIA)ドメインサービスを使用するSilverlightプロジェクト(VB)があります。DataForm でデータを表示しています。私のドメイン サービスには、InsertUser、UpdateUser、DeleteUser メソッドが (正しく) 指定されています。CommandButtonsVisibility は設定されていません (したがって、デフォルト値があると思います)。

ただし、Commit-Button は表示されません (無効になっているだけでなく、そこにもありません)。設定CommandButtonsVisibility=Allすると、編集ボタンを使用でき、機能しています(変更はデータベースに保存されます)。ただし、デフォルトの動作を使用したいと思います。

CRUDメソッドがドメインサービスに記述されているかどうかにかかわらず、DataFormが自動的にボタンを表示または非表示にすることを認識しました(削除メソッドでテストしました)。

Update-methods が正しく定義されていませんか? これは彼らがどのように見えるかです:

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 を正しいバッキング データ ストアにバインドしていないことです。単一のアイテムにバインドしている場合は、ほとんど運がありません。独自の [OK] ボタンと [キャンセル] ボタンを実装するだけです。ただし、コレクションに対して作業している場合は、ICollectionView が実装されていることを確認してください。(ObservableCollectionでも幸運に恵まれるかもしれません。)

より具体的なヘルプが必要な場合は、XAML の関連部分とコード ビハインドを投稿してください。

于 2011-09-30T14:21:23.807 に答える