ICollectionView.CurrentChanging Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Al implementar esta interfaz, active este evento antes de cambiar el elemento actual. El controlador de eventos puede cancelar este evento.
// 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
Tipo de evento
Ejemplos
En el ejemplo de código siguiente se muestra cómo controlar el evento CurrentChanging. En este ejemplo, el XAML muestra el contenido de una página con gridView enlazado a un collectionViewSource. El código subyacente muestra la inicialización CollectionViewSource , que incluye establecer su origen y recuperar su vista para adjuntar el controlador de eventos 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;
}
}
Comentarios
El evento CurrentChanging se produce cuando cambia el valor de la propiedad CurrentItem . El parámetro CurrentChangingEventArgs pasado al controlador de eventos especifica información sobre el cambio. Si IsCancelable es true, el controlador de eventos puede cancelar el cambio estableciendo Cancelar en true. Si se cancela el cambio, CurrentItem no se cambia. Si se establece Cancel en true , IsCancelable es false , se produce una excepción.
Las clases que implementan esta interfaz deben activar el evento CurrentChanging, establecer IsCancelable según corresponda y, a continuación, comprobar la propiedad Cancel antes de cambiar el objeto CurrentItem y desencadenar el evento CurrentChanged .