Evento SyncCallbacks.ItemConstraint
Si verifica quando viene segnalato un conflitto di vincoli, per conflitti di collisione quando i criteri di risoluzione dei conflitti di collisione sono impostati su ApplicationDefined e per tutti i conflitti di vincoli non di collisione.
Spazio dei nomi: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (in microsoft.synchronization.dll)
Sintassi
'Dichiarazione
Public Event ItemConstraint As EventHandler(Of ItemConstraintEventArgs)
'Utilizzo
Dim instance As SyncCallbacks
Dim handler As EventHandler(Of ItemConstraintEventArgs)
AddHandler instance.ItemConstraint, handler
public event EventHandler<ItemConstraintEventArgs> ItemConstraint
public:
event EventHandler<ItemConstraintEventArgs^>^ ItemConstraint {
void add (EventHandler<ItemConstraintEventArgs^>^ value);
void remove (EventHandler<ItemConstraintEventArgs^>^ value);
}
/** @event */
public void add_ItemConstraint (EventHandler<ItemConstraintEventArgs> value)
/** @event */
public void remove_ItemConstraint (EventHandler<ItemConstraintEventArgs> value)
JScript supports the use of events, but not the declaration of new ones.
Osservazioni
Questa notifica può essere utilizzata da un'applicazione per eseguire la risoluzione personalizzata dei conflitti per i conflitti di vincoli. Per eseguire questa operazione, l'applicazione controlla ed elabora il contenuto dell'oggetto ItemConstraintEventArgs inviato al gestore eventi e imposta quindi l'azione di risoluzione per il conflitto chiamando SetResolutionAction prima che venga restituito da questo metodo.
Quando la proprietà ConstraintConflictReason dell'oggetto ItemConstraintEventArgs è impostata su un qualsiasi valore diverso da Collision, è necessario impostare l'azione di risoluzione su SkipChange o SaveConflict.
Esempio
Nell'esempio seguente viene implementato un gestore per l'evento ItemConstraint. Il gestore consente all'utente di visualizzare gli elementi in conflitto e imposta l'azione di risoluzione dei conflitti di vincoli sulla base della risposta dell'utente.
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);
}
}
Vedere anche
Riferimento
Classe SyncCallbacks
Membri SyncCallbacks
Spazio dei nomi Microsoft.Synchronization