ICollectionView.CurrentChanging Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Lors de l’implémentation de cette interface, déclenchez cet événement avant de modifier l’élément actif. Le gestionnaire d’événements peut annuler cet événement.
// Register
event_token CurrentChanging(CurrentChangingEventHandler const& handler) const;
// Revoke with event_token
void CurrentChanging(event_token const* cookie) const;
// Revoke with event_revoker
ICollectionView::CurrentChanging_revoker CurrentChanging(auto_revoke_t, CurrentChangingEventHandler const& handler) const;
event CurrentChangingEventHandler CurrentChanging;
function onCurrentChanging(eventArgs) { /* Your code */ }
iCollectionView.addEventListener("currentchanging", onCurrentChanging);
iCollectionView.removeEventListener("currentchanging", onCurrentChanging);
- or -
iCollectionView.oncurrentchanging = onCurrentChanging;
Event CurrentChanging As CurrentChangingEventHandler
Type d'événement
Exemples
L’exemple de code suivant montre comment gérer l’événement CurrentChanging. Dans cet exemple, le code XAML montre le contenu d’une page avec un GridView lié à un Objet CollectionViewSource. Le code-behind affiche l’initialisation CollectionViewSource , qui inclut la définition de sa source et la récupération de son affichage afin d’attacher le gestionnaire d’événements CurrentChanging.
<Page.Resources>
<CollectionViewSource x:Name="cvs" />
<DataTemplate x:Key="myDataTemplate">
<Border Background="#FF939598" Width="200" Height="200">
<TextBlock Text="{Binding Path=Name}" />
</Border>
</DataTemplate>
</Page.Resources>
<Grid Background="{StaticResource ApplicationPageBackgroundBrush}">
<GridView x:Name="PicturesGrid"
SelectionMode="Single" CanReorderItems="False" CanDragItems="False"
ItemsSource="{Binding Source={StaticResource cvs}}"
ItemTemplate="{StaticResource myDataTemplate}" >
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid VerticalChildrenAlignment="Top"
HorizontalChildrenAlignment="Left" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
</Grid>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var library = Windows.Storage.KnownFolders.PicturesLibrary;
var queryOptions = new Windows.Storage.Search.QueryOptions();
queryOptions.FolderDepth = Windows.Storage.Search.FolderDepth.Deep;
queryOptions.IndexerOption =
Windows.Storage.Search.IndexerOption.UseIndexerWhenAvailable;
var fileQuery = library.CreateFileQueryWithOptions(queryOptions);
var fif = new Windows.Storage.BulkAccess.FileInformationFactory(
fileQuery,
Windows.Storage.FileProperties.ThumbnailMode.PicturesView, 190,
Windows.Storage.FileProperties.ThumbnailOptions.UseCurrentScale,
false);
var dataSource = fif.GetVirtualizedFilesVector();
cvs.Source = dataSource;
cvs.View.CurrentChanging += View_CurrentChanging;
}
private void View_CurrentChanging(object sender, CurrentChangingEventArgs e)
{
Debug.WriteLine("Cancel = " + e.Cancel);
Debug.WriteLine("IsCancelable = " + e.IsCancelable);
if (e.IsCancelable == true)
{
// Cancel the change. The previously selected item remains selected.
e.Cancel = true;
}
}
Remarques
L’événement CurrentChanging se produit lorsque la valeur de la propriété CurrentItem change. Le paramètre CurrentChangingEventArgs passé au gestionnaire d’événements spécifie des informations sur la modification. Si IsCancelable a la valeur true, le gestionnaire d’événements peut annuler la modification en définissant Annuler sur true. Si la modification est annulée, CurrentItem n’est pas modifié. La définition de Cancel sur true lorsque IsCancelable a la valeur false lève une exception.
Les classes qui implémentent cette interface doivent déclencher l’événement CurrentChanging, définir IsCancelable comme il convient, puis case activée la propriété Cancel avant de modifier l’objet CurrentItem et de déclencher l’événement CurrentChanged.