сохранить историю смены экрана в приложении lightswitch - PullRequest
2 голосов
/ 02 октября 2011

Есть ли простой способ отследить, что изменилось на экране приложения lightswitch?

У меня есть форма, которая показывает информацию о клиенте (listdetail). Когда я сохраняю его, я хочу записать в таблицу истории, что было изменено.

1 Ответ

3 голосов
/ 03 октября 2011

нашел ответ здесь .

Просто используйте следующий код в событиях _updating, _inserting для элементов управления.

    Private Sub Employees_Updating(entity As Employee)
       Dim change = entity.EmployeeChanges.AddNew()
       change.ChangeType = "Updated" change.Employee = entity
       change.Updated = Now()
       change.ChangedBy = Me.Application.User.FullName

       Dim newvals = "New Values:"    
       Dim oldvals = "Original Values:"    

       For Each prop In entity.Details.Properties.All().
            OfType(Of Microsoft.LightSwitch.Details.IEntityStorageProperty)()

           If prop.Name <> "Id" Then             

                If Not Object.Equals(prop.Value, prop.OriginalValue) Then                 
                    oldvals += String.Format("{0}{1}: {2}", vbCrLf, prop.Name, prop.OriginalValue)
                    newvals += String.Format("{0}{1}: {2}", vbCrLf, prop.Name, prop.Value)
                End If         
           End If    

       Next   

      change.OriginalValues = oldvals
      change.NewValues = newvals

End Sub 
...