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
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 - 22 oct. 2017 à 15:26
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 - 22 oct. 2017 à 15:26
A voir également:
- WPF utiliser les variables d'une fenêtre dans une autre fenêtre
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Comment utiliser chromecast - Guide
- Déplacer une fenetre avec le clavier ✓ - Forum Windows
- Votre pc ne peut pas utiliser un autre écran ✓ - Forum PC-TV
- Gestionnaire de fenetre du bureau ✓ - Forum Windows 10
4 réponses
Whismeril
Messages postés
18279
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mars 2023
888
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.
Whismeril
Messages postés
18279
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mars 2023
888
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
Whismeril
Messages postés
18279
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mars 2023
888
22 oct. 2017 à 14:48
22 oct. 2017 à 14:48
Whismeril
Messages postés
18279
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mars 2023
888
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 ?