A voir également:
- WPF utiliser les variables d'une fenêtre dans une autre fenêtre
- Fenetre windows - Guide
- Fenêtre hors écran windows 11 - Guide
- Fenetre de navigation privée - Guide
- Utiliser chromecast - Guide
- Utiliser une tablette comme ecran pc - Guide
4 réponses
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.
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
Comment faire pour binder la textbox à l'autre fenêtre du coup ?