Bonjour à tous,
Je viens de découvrir un comportement étrange lié à la Toolbar lors de la suppression d'items. J'ai joint un Zip contenant le XAML, le C# et l'EXE.
Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="WpfApplication1.Window1" ResizeMode="CanResize" SizeToContent="WidthAndHeight"> <Grid> <ToolBar x:Name="toolbar" ItemsSource="{Binding}" /> </Grid> </Window>
Code C# : 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
23
24
25
26
27
28 namespace WpfApplication1 { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { private ObservableCollection<Button> _ocButtons = new ObservableCollection<Button>(); public Window1() { InitializeComponent(); this.DataContext = _ocButtons; for (int i = 0; i < 10; i++) { Button b = new Button { Height = 23, Width = 72, Content = "Bouton " + i }; b.Click += new RoutedEventHandler((sender, e) => _ocButtons.Remove((Button)sender)); //b.Click += new RoutedEventHandler((sender, e) => ((Button)sender).Visibility = Visibility.Collapsed); _ocButtons.Add(b); } } } }
Le problème survient lorsqu'il y a des éléments cachés dans le ToggleButton. Si vous supprimez un bouton (en lui cliquant dessus) présent dans la Popup des "éléments cachés", vous remarquerez que la Popup devient instantanément vide... même s'il y a des boutons dedans! Ces élements sont toujours présent vu que si on agrandit la Toolbar, les élements cachés s'affichent.
Le comportement est quasiment le même avec le Visibility à Collapsed. En cliquant sur un bouton, il va disparaître, mais la Popup affiche les éléments restants. Cependant, le bug précédent intervient lorsqu'on a cliqué sur tous les boutons de la Popup...
Si vous avez des idées pour éviter ce bug, je suis preneur!
Merci d'avance,
Chris
Partager