Bonjour,

J'ai une CollectionView contenant une liste de valeurs (type chaine).
Cette CollectionView est bindée à une ListBox avec un IsSynchronizedWithCurrentItem=True

J'ai surchargé la méthode MoveCurrentToPosition de la CollectionView pour qu'aucun changement de sélection ne soit effectué (l'idée finale étant d'interdire dans certains cas la modification de la position courante).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Public Class MaCollectionView
   Inherits CollectionView
 
   Public Overrides Function MoveCurrentToPosition(ByVal position As Integer) As Boolean
      Return False
   End Function
End Class
Du coup, lorsque je clique sur ma liste graphique, mon CurrentItem de ma CollectionView ne change pas mais la sélection change. Ma liste n'est donc plus synchronizée avec sa source !!

Voici le code Behind de ma fenêtre.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Public Class I_TestUtilisateur
 
    Public Sub New()
 
        ' This call is required by the designer.
        InitializeComponent()
 
        ' Add any initialization after the InitializeComponent() call.
        Dim maListe As New ObservableCollection(Of String)(New String() {"Element 1", "Element 2", "Element 3", "Element 4"})
        Me.DataContext = New MaCollectionView(maListe)
    End Sub
End Class
Voici le XAML de ma fenêtre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<Window x:Class="I_TestUtilisateur"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="I_TestUtilisateur" Height="300" Width="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="237*" />
            <RowDefinition Height="24*" />
        </Grid.RowDefinitions>
        <ListBox ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True" />
    </Grid>
</Window>
Comment peut-on annuler la modification d'un CurrentItem dans la CollectionView et que la liste graphique tienne compte de cette annulation ?

Merci pour votre aide.