Partager via


Classe ItemConstraintEventArgs

Fournit des données pour l'événement ItemConstraint.

Espace de noms :  Microsoft.Synchronization
Assembly :  Microsoft.Synchronization (dans Microsoft.Synchronization.dll)

Syntaxe

'Déclaration
Public Class ItemConstraintEventArgs _
    Inherits EventArgs
'Utilisation
Dim instance As ItemConstraintEventArgs
public class ItemConstraintEventArgs : EventArgs
public ref class ItemConstraintEventArgs : public EventArgs
type ItemConstraintEventArgs =  
    class
        inherit EventArgs
    end
public class ItemConstraintEventArgs extends EventArgs

Notes

ItemConstraintEventArgs se produit lorsqu'un conflit de contraintes est signalé, pour les conflits de contraintes de collision lorsque la stratégie de résolution de conflit de collision a la valeur ApplicationDefined, ainsi que pour tous les conflits de contraintes de non-collision.

Exemples

L'exemple suivant implémente un gestionnaire pour l'événement ItemConstraint. Le gestionnaire affiche les éléments en conflit à l'intention de l'utilisateur et définit l'action de résolution de conflit de contraintes en fonction de la réponse de l'utilisateur.

Private Sub HandleItemConstraint(ByVal sender As [Object], ByVal args As ItemConstraintEventArgs)
    If ConstraintConflictReason.Collision = args.ConstraintConflictReason Then
        ' Display the two items that are in conflict and solicit a resolution from the user.
        Dim srcContact As New Contact(DirectCast(args.SourceChangeData, String()))
        Dim destContact As New Contact(DirectCast(args.DestinationChangeData, String()))
        Dim msg As String = ("Source change is " & srcContact.ToString() & vbLf & "Destination change is ") & destContact.ToString() & vbLf & "Click Yes to rename the source change and apply it." & vbLf & "Click No to rename the destination item and apply the source change." & vbLf & "Click Cancel to delete the destination item and apply the source change."
        Dim ccDlg As New ConstraintConflictDlg(msg)
        ccDlg.ShowDialog()

        ' Set the resolution action based on the user's response.
        args.SetResolutionAction(ccDlg.Resolution)
    Else
        args.SetResolutionAction(ConstraintConflictResolutionAction.SaveConflict)
    End If
End Sub
void HandleItemConstraint(Object sender, ItemConstraintEventArgs args)
{
    if (ConstraintConflictReason.Collision == args.ConstraintConflictReason)
    {
        // Display the two items that are in conflict and solicit a resolution from the user.
        Contact srcContact = new Contact((string[])args.SourceChangeData);
        Contact destContact = new Contact((string[])args.DestinationChangeData);
        string msg = "Source change is " + srcContact.ToString() +
                   "\nDestination change is " + destContact.ToString() +
                   "\nClick Yes to rename the source change and apply it." +
                   "\nClick No to rename the destination item and apply the source change." +
                   "\nClick Cancel to delete the destination item and apply the source change.";
        ConstraintConflictDlg ccDlg = new ConstraintConflictDlg(msg);
        ccDlg.ShowDialog();

        // Set the resolution action based on the user's response.
        args.SetResolutionAction(ccDlg.Resolution);
    }
    else 
    {
        args.SetResolutionAction(ConstraintConflictResolutionAction.SaveConflict);
    }
}

Hiérarchie d'héritage

System. . :: . .Object
  System. . :: . .EventArgs
    Microsoft.Synchronization..::..ItemConstraintEventArgs

Sécurité des threads

Tous les membres publics static (Shared dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres ItemConstraintEventArgs

Espace de noms Microsoft.Synchronization

Autres ressources

Gestion des conflits