ICollectionView.CurrentChanging Ereignis

Definition

Wenn Sie diese Schnittstelle implementieren, lösen Sie dieses Ereignis aus, bevor Sie das aktuelle Element ändern. Der Ereignishandler kann dieses Ereignis abbrechen.

// 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 

Ereignistyp

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie das CurrentChanging-Ereignis behandelt wird. In diesem Beispiel zeigt xaml den Inhalt einer Seite an, deren GridView an eine CollectionViewSource gebunden ist. Das CodeBehind zeigt die CollectionViewSource-Initialisierung , die das Festlegen der Quelle und das Abrufen ihrer Ansicht umfasst, um den CurrentChanging-Ereignishandler anzufügen.

<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;
    }
}

Hinweise

Das CurrentChanging-Ereignis tritt auf, wenn sich der CurrentItem-Eigenschaftswert ändert. Der an den Ereignishandler übergebene CurrentChangingEventArgs-Parameter gibt Informationen zur Änderung an. Wenn IsCancelableauf true festgelegt ist, kann der Ereignishandler die Änderung abbrechen, indem Er Cancel auf true festlegt. Wenn die Änderung abgebrochen wird, wird CurrentItem nicht geändert. Wenn Cancel auf true festgelegt wird, wenn IsCancelableauf false festgelegt ist, wird eine Ausnahme ausgelöst.

Klassen, die diese Schnittstelle implementieren, sollten das CurrentChanging-Ereignis auslösen, IsCancelable entsprechend festlegen und dann die Cancel-Eigenschaft überprüfen, bevor Sie das CurrentItem-Ereignis ändern und das CurrentChanged-Ereignis auslösen.

Gilt für: