Bonjour,
si un contrôle est déclaré dans le XAML, comme est "Button2" dans cet exemple :
Est-il possible de le remplacer ou supprimer dynamiquement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <Window x:Class="TestDynamicControl.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Button x:Name="Button1" Grid.Column="0" Click="Button1_Click"/> <Button x:Name="Button2" Grid.Column="1"/> </Grid> </Window>
Ce code ne fonctionnant pas pour le remplacer :
Ni celui-ci pour le supprimer :
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
23
24
25
26
27
28
29
30
31
32
33
34 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace TestDynamicControl { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { public Window1() { InitializeComponent(); } private void Button1_Click(object sender, RoutedEventArgs e) { Button newButton = new Button(); newButton.Content = "Test"; Button2 = newButton; } } }
En effet la fenêtre présente toujours le même bouton, même s'il est mis à "null".
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
23
24
25
26
27
28
29
30
31
32 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace TestDynamicControl { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { public Window1() { InitializeComponent(); } private void Button1_Click(object sender, RoutedEventArgs e) { Button2 = null; } } }
Faut-il dire à la fenêtre de se rafraichir ?
L'objectif réel étant qu'un contrôle différent soit affiché en fonction des données reçues par l'application.
Merci.
Partager