WPF utiliser les variables d'une fenêtre dans une autre fenêtre
Fermé
peter351
Messages postés
58
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
22 octobre 2017
-
21 oct. 2017 à 18:24
Utilisateur anonyme - 22 oct. 2017 à 15:26
Utilisateur anonyme - 22 oct. 2017 à 15:26
A voir également:
- WPF utiliser les variables d'une fenêtre dans une autre fenêtre
- Fenêtre hors écran windows 11 - Guide
- Fenetre windows - Guide
- Fenêtre - Guide
- Utiliser chromecast - Guide
- Mcafee fenetre intempestive - Accueil - Piratage
4 réponses
Utilisateur anonyme
21 oct. 2017 à 19:19
21 oct. 2017 à 19:19
Bonjour
WPF est une technologie basée sur le binding.
Ta textbox "Nom" est donc sensée être liée à un objet ayant une propriété "Nom", dans ce cas, il suffit de binder l'autre fenêtre au même objet.
WPF est une technologie basée sur le binding.
Ta textbox "Nom" est donc sensée être liée à un objet ayant une propriété "Nom", dans ce cas, il suffit de binder l'autre fenêtre au même objet.
Utilisateur anonyme
22 oct. 2017 à 11:48
22 oct. 2017 à 11:48
Tu débutes en C# ou en WPF?
peter351
Messages postés
58
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
22 octobre 2017
3
22 oct. 2017 à 14:28
22 oct. 2017 à 14:28
Un peu les deux en réalité ^^ mais j'ai des bases en C# que je n'ai pas en WPF
Utilisateur anonyme
22 oct. 2017 à 15:26
22 oct. 2017 à 15:26
Mise en application
MainWindow
DeuxiemeFenetre
Et la classe Creator
Comme tu le voies, dans le cs de MainWindows, on associe le créateur à chaque fenêtre et c'est tout.
Y'a rien dans le cs de DeuxiemeFenetre et la classe Creator implémente iNotifyPropertyChanged
MainWindow
<Window x:Class="Test_WPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:def="Definition" Title="MainWindow" Height="350" Width="525"> <Grid DataContext="{Binding .}"> <TextBox Text="{Binding Nom, UpdateSourceTrigger=PropertyChanged}" Margin="10,10,371,275"/> <Button x:Name="MyButton" HorizontalAlignment="Left" Margin="308,120,0,0" VerticalAlignment="Top" Width="75"> <TextBlock Text="Ciquer ici"/> </Button> </Grid> </Window>
using System.Windows; namespace Test_WPF { /// <summary> /// Logique d'interaction pour MainWindow.xaml /// </summary> public partial class MainWindow : Window { private Creator createur; public MainWindow() { InitializeComponent(); createur = new Creator(); this.DataContext = createur; DeuxiemeFenetre autrePage = new DeuxiemeFenetre(); autrePage.DataContext = createur; autrePage.Show(); } } }
DeuxiemeFenetre
<Window x:Class="Test_WPF.DeuxiemeFenetre" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Test_WPF" mc:Ignorable="d" Title="DeuxiemeFenetre" Height="300" Width="300"> <Grid DataContext="{Binding .}"> <TextBox Text="{Binding Nom, UpdateSourceTrigger=PropertyChanged}" Margin="10,10,179,233"/> </Grid> </Window>
Et la classe Creator
using System.ComponentModel; namespace Test_WPF { public class Creator:INotifyPropertyChanged { private string nom; public string Nom { get { return nom; } set { if (value == nom) return; nom = value; GenererPropertyChanged("Nom"); } } public event PropertyChangedEventHandler PropertyChanged; private void GenererPropertyChanged(string Propriete) { if (this.PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(Propriete)); } } }
Comme tu le voies, dans le cs de MainWindows, on associe le créateur à chaque fenêtre et c'est tout.
Y'a rien dans le cs de DeuxiemeFenetre et la classe Creator implémente iNotifyPropertyChanged
22 oct. 2017 à 11:27
Comment faire pour binder la textbox à l'autre fenêtre du coup ?