ICollectionView.CurrentChanging event
When implementing this interface, raise this event before changing the current item. The event handler can cancel this event.
Syntax
Event information
| Delegate | CurrentChangingEventHandler |
|---|
Remarks
The CurrentChanging event occurs when the CurrentItem property value is changing. The CurrentChangingEventArgs parameter passed to the event handler specifies information about the change. If IsCancelable is true, the event handler can cancel the change by setting Cancel to true. If the change is canceled, CurrentItem is not changed. Setting Cancel to true when IsCancelable is false raises an exception.
Classes that implement this interface should raise the CurrentChanging event, set IsCancelable as appropriate, and then check the Cancel property before changing the CurrentItem and raising the CurrentChanged event.
Examples
The following code example demonstrates how to handle the CurrentChanging event. In this example, the XAML shows the content of a page with a GridView bound to a CollectionViewSource. The code-behind shows the CollectionViewSource initialization, which includes setting its Source and retrieving its View in order to attach the CurrentChanging event handler.
<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; } }
Requirements
|
Minimum supported client | Windows 8 |
|---|---|
|
Minimum supported server | Windows Server 2012 |
|
Namespace |
|
|
Metadata |
|
See also
Build date: 12/4/2012
