как вставить запись с привязкой данных wpf? - PullRequest
1 голос
/ 26 апреля 2011

я новичок в wpf, поэтому, пожалуйста, потерпите меня

я сделал окно для управления записями "профиля"

пока работает навигация и обновление

Кажется, я не могу заставить работать вставку

вот очень простой код

Imports System.Collections.ObjectModel

Public Class Window1
Dim WindowEntities As New DataEntities
Dim WindowList As ObservableCollection(Of Profile)

Function ProfilesViewSource() As CollectionViewSource
    Return CType(FindResource("ProfilesViewSource"), CollectionViewSource)
End Function
Function DefaultView() As CollectionView
    Return CollectionViewSource.GetDefaultView(ProfilesViewSource.View)
End Function

Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles MyBase.Loaded
    WindowList = New ObservableCollection(Of Profile)(From x In WindowEntities.Profiles Order By x.ProfileName)
    ProfilesViewSource.Source = WindowList
End Sub

Private Sub btnSave_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles btnSave.Click
    WindowEntities.SaveChanges()
End Sub

Private Sub btnAdd_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles btnAdd.Click
    WindowList.Add(New Profile)
    DefaultView.MoveCurrentToLast()
End Sub

Private Sub btnNext_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles btnNext.Click
    DefaultView.MoveCurrentToNext()
End Sub
End Class

когда я нажимаю добавить, я получаю новую пустую запись, когда я заполняю ее, я вижу, что коллекция видит ее, так как есть список onform, показывающий профили, и он там перечисляется, так что он фактически присоединен к список, но команда savechanges не вставляет его в db

могут быть некоторые ошибки проверки при вставке, но тогда я получу некоторое указание, верно? теперь просто молча терпит неудачу. как будто я никогда не привязывался к фиксации изменений

Большое спасибо за помощь, ребята

1 Ответ

0 голосов
/ 21 июля 2011

( IVerzin ) 1. создать новый профиль. 2. Добавьте его в WindowEntities 3. Добавьте его в WindowList

...