Как использовать стандартную CommandButtonsVisibility с Dataform, WCF RIA и POCO Entites? - PullRequest
1 голос
/ 13 сентября 2011

У меня есть проект Silverlight (в VB), который использует доменную службу (WCF RIA), которая использует объекты POCO. Я отображаю данные с помощью DataForm. В моей доменной службе указаны методы InsertUser, UpdateUser, DeleteUser (правильно). CommandButtonsVisibility не установлена ​​(поэтому я предполагаю, что она имеет значения по умолчанию).

Однако кнопка фиксации не видна (она не только отключена, но даже не существует). Когда я устанавливаю CommandButtonsVisibility=All, я могу использовать кнопку редактирования, и она работает (изменения сохраняются в БД). Я хотел бы использовать поведение по умолчанию, хотя.

Я узнал, что DataForm автоматически показывает или скрывает кнопки, если CRUD-методы написаны или не записаны в доменной службе (я проверял это с помощью Delete-методов).

Что я делаю неправильно, мои методы Update не определены правильно? Вот как они выглядят:

Public Sub UpdateUser(ByVal user As User)
     '... update the user
End Sub

Для пользователей C #:

public void UpdateUser(User user)
     //... update the user
End Sub

1 Ответ

1 голос
/ 30 сентября 2011

Первым делом первым. DataForm - самый сложный код, с которым я когда-либо сталкивался в своей жизни. Он был в основном предназначен для использования в качестве дочернего представления для DataGrid в представлении типа Master / Child. И я полагаю, что они протестировали его только с неуправляемым генерируемым кодом drap & drop, который вы часто видите во вступительных видео.

Давайте теперь перейдем к вашей проблеме: Наиболее распространенная причина этого заключается в том, что вы не связываете свою DataForm с правильным хранилищем данных. Если вы привязываетесь к одному предмету, вам не повезло. Просто внедрите свои собственные кнопки ОК и Отмена. Но если вы работаете с коллекцией, убедитесь, что она реализует ICollectionView. (Вам также может повезти с ObservableCollection.)

Если вам нужна более конкретная помощь, пожалуйста, опубликуйте соответствующие части вашего XAML и код позади.

...