Bonjour à tous,
Petit problème avec mon binding. J'ai une liste qui contient des éléments et un contextmenu (woua). Ces éléments ont un champ 'DigitalFormat' (bool) qui doit être bindé sur un la propriété "IsChecked" du menuitem de mon contextmenu.
Le problème c'est que lorsque j'accède à mon contextmenu, il semblerait qu'il ne trouve pas mon champ 'DigitalFormat'. Voici l'erreur que j'aperçoit en output:
Alors j'ai essayé une première fois de binder avec ElementName=lvCollection, Path=SelectedItem.DigitalFormat ... et maintenant j'essaye avec FindAncestor, mais rien ne fait, il n'arrive pas à lier les deux visiblement.System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ListViewItem', AncestorLevel='1''. BindingExpressionath=DigitalFormat; DataItem=null; target element is 'MenuItem' (Name='cmSetDigitalFormat'); target property is 'IsChecked' (type 'Boolean')
Si qqn a un éclaircissement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <ListView Name="lvCollection" Margin="12,0,12,12" Height="213" VerticalAlignment="Bottom" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding ElementName=lvSeriesCollection, Path=SelectedItem.Albums}" MouseDoubleClick="lvCollection_MouseDoubleClick"> <ListView.View> <GridView> <GridViewColumn Header="Number" Width="50" DisplayMemberBinding="{Binding Path=Album.Number}"/> <GridViewColumn Header="Digital Format" Width="80" DisplayMemberBinding="{Binding Path=DigitalFormat}"/> </GridView> </ListView.View> <ListView.ContextMenu> <ContextMenu> <MenuItem Name="cmSetDigitalFormat" Header="Set as Digital Format" IsCheckable="True" IsChecked="{Binding Path=DigitalFormat, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListViewItem}}}" Click="cmSetDigitalFormat_Click"/> </ContextMenu> </ListView.ContextMenu> </ListView>
Partager