Share via


ICollectionView.CurrentChanging Kejadian

Definisi

Saat menerapkan antarmuka ini, aktifkan kejadian ini sebelum mengubah item saat ini. Penanganan aktivitas dapat membatalkan acara ini.

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

Jenis Acara

Contoh

Contoh kode berikut menunjukkan cara menangani peristiwa CurrentChanging. Dalam contoh ini, XAML menampilkan konten halaman dengan GridView yang terikat ke CollectionViewSource. Kode di belakang menunjukkan inisialisasi CollectionViewSource , yang mencakup pengaturan Sumbernya dan mengambil Tampilannya untuk melampirkan penanganan aktivitas 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;
    }
}

Keterangan

Peristiwa CurrentChanging terjadi ketika nilai properti CurrentItem berubah. Parameter CurrentChangingEventArgs yang diteruskan ke penanganan aktivitas menentukan informasi tentang perubahan. Jika IsCancelablebenar, penanganan aktivitas dapat membatalkan perubahan dengan mengatur Batal ke true. Jika perubahan dibatalkan, CurrentItem tidak diubah. Pengaturan Batal ke true ketika IsCancelablesalah memberikan pengecualian.

Kelas yang mengimplementasikan antarmuka ini harus mengaktifkan peristiwa CurrentChanging, mengatur IsCancelable sebagaimana mestinya, lalu periksa properti Batalkan sebelum mengubah CurrentItem dan mengaktifkan peristiwa CurrentChanged .

Berlaku untuk