Utilisation d'un Binding avec un StackPanel
Résolu/Fermé
Hamster18
Messages postés
177
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
-
Modifié le 5 mai 2019 à 20:52
Hamster18 Messages postés 177 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024 - 8 mai 2019 à 23:19
Hamster18 Messages postés 177 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024 - 8 mai 2019 à 23:19
A voir également:
- Wpf stackpanel binding
- Wpf WebBrowser - Forum Framework .NET
- Radiobutton wpf c# - Forum C#
- Focus TextBox WPF ✓ - Forum C#
- Wpf combobox selectedvalue ✓ - Forum C#
- Déploiment WPF/WindowsForm et EntityFramework ✓ - Forum Framework .NET
5 réponses
Utilisateur anonyme
Modifié le 5 mai 2019 à 20:40
Modifié le 5 mai 2019 à 20:40
Dans ton code behind, je ne vois pas où tu bindes le contenu du stackpanel.
Et dans ton xaml je ne voie pas où tu veux récupérer ce contenu.
D'ailleurs y'a des trucs qui ne servent à rien dans ton xaml
PS pour la coloration, du xaml, c'est du xml
Et dans ton xaml je ne voie pas où tu veux récupérer ce contenu.
D'ailleurs y'a des trucs qui ne servent à rien dans ton xaml
<Grid><!--T'as pas défini de colonnes, donc plus bas pas la peine de dire que c'est attaché à la colonne 0--> <StackPanel Name="Master" Grid.Column="0" Margin="15,25,0.4,15"> <StackPanel><!--Ce 2eme stackpanel est inutile, il fait exactement la même chose que le premier--> <Ellipse Margin="10,50,10,20" Width="200" Height="200" Stroke="White" StrokeThickness="4"> <Ellipse.Fill> <ImageBrush ImageSource="{Binding Images}"/> </Ellipse.Fill> </Ellipse> <TextBlock TextWrapping="Wrap" TextAlignment="Center" Text="{Binding Appelation}"/> </StackPanel> </StackPanel> </Grid>
PS pour la coloration, du xaml, c'est du xml
Utilisateur anonyme
5 mai 2019 à 21:38
5 mai 2019 à 21:38
Cependant cette ligne m'entraine l'erreur " objet ne contient pas de définition pour ItemsSource...", du coup je l'ai enlever...au vu de cette ligne
Presentation_horreur = horreur;je suppose que Présentation_horreur est du type Genre, et Genre n'a pas d'ItemSource.
DataContext="Presentation_horreur"
Non, vaux mieux
DataContext="{Binding}"
avec
public Window6() { InitializeComponent(); var horreur = new Genre("Horreur", "Vous avez envie de vous donner quelques frissons ?" + " Alors restez bien assie et proffiter de notre large choix de série d'horreur !", "../Medias/Photos/Genre_horreur.jpg"); Presentation_horreur = horreur; this.DataContext = Presentation_horreur;//là on affecte la source de données, variable, collection etc. }
Peut-être aussi, faut il dire aux contrôles enfants, que leur DataContext est le même que celui du parent avec
DataContext="{Binding .}"
<Window x:Class="Atsa.Fenetres.Window6" 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:Atsa.Fenetres" mc:Ignorable="d" DataContext="{Binding}" Title="Window6" Height="450" Width="800"> <Grid DataContext="{Binding .}"><!--ici--> <StackPanel DataContext="{Binding .}"><!--et là--> <Ellipse Margin="10,50,10,20" Width="200" Height="200" Stroke="White" StrokeThickness="4"> <Ellipse.Fill> <ImageBrush ImageSource="{Binding Images}"/> </Ellipse.Fill> </Ellipse> <TextBlock TextWrapping="Wrap" TextAlignment="Center" Text="{Binding Appelation}"/> </StackPanel> </Grid>
Hamster18
Messages postés
177
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
Modifié le 5 mai 2019 à 22:08
Modifié le 5 mai 2019 à 22:08
Merci beaucoup ça fonctionne ! J'aurais une autre question, quand je crée un objet dans la code C# pour en bindes les données à la page associé (Window1 par exemple) es possible de réutiliser cet même objet (pour bindes les données par exemple) sans devoir recréer cet objet dans la le code C# de la nouvelle fenêtre (Window 5 par exemple) ?
Merci d'avance.
Cordialement.
Merci d'avance.
Cordialement.
Utilisateur anonyme
6 mai 2019 à 07:38
6 mai 2019 à 07:38
Bonjour
J’ai écrit un tuto en winform sur le sujet, en WPF le principe reste le même
https://codes-sources.commentcamarche.net/faq/11107-interactions-entre-form-en-net-c-et-vb-net
J’ai écrit un tuto en winform sur le sujet, en WPF le principe reste le même
https://codes-sources.commentcamarche.net/faq/11107-interactions-entre-form-en-net-c-et-vb-net
Hamster18
Messages postés
177
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
6 mai 2019 à 18:01
6 mai 2019 à 18:01
Merci, j'ai commencé à regarder un peu, mais je ne vois pas comment faire... Je fais faire des recherches complémentaires et si je n'y arrive pas je me retournerais vers vous.
Merci d'avance.
Cordialement.
Merci d'avance.
Cordialement.
Utilisateur anonyme
6 mai 2019 à 20:19
6 mai 2019 à 20:19
Dans Windows1, j'ai un objet toto, du type LeType.
Je veux le passer à Windows5, j'ajoute donc un paramètre au constructeur de Windows5 du type LeType,
et dans Windows1
Je veux le passer à Windows5, j'ajoute donc un paramètre au constructeur de Windows5 du type LeType,
private LeType totoBis public Windows5(LeType UnParametre) { InitializeComponent(); totoBis = UnParametre; }
et dans Windows1
Windows5 wdw = new Windows5(toto);
Hamster18
Messages postés
177
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
7 mai 2019 à 22:23
7 mai 2019 à 22:23
Bonjour, j'ai tenter cette méthode mais elle me provoque des erreurs notamment sur mes Bindind. De plus j'ai un grand nombres de fenêtres ou il faut importer ces données ce qui rend cette mise en place difficile. Serait-il possible de crée les objets en dehors du code behind de la page pour ensuite les utiliser sur les fenêtres voulus (sachant que j'utilise ces données essentiellement pour des bindes)
Merci d'avance de votre réponse.
Cordialement.
Merci d'avance de votre réponse.
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
8 mai 2019 à 00:03
8 mai 2019 à 00:03
Bonsoir
ça s'appelle une variable globale, c'est généralement déconseillé, et c'est même considéré comme une erreur de conception en programmation objet, car cela expose la donné à tout va.
Je t'ai donné un Verre comme exemple, et bien il n'a pas à avoir accès aux données d'une tondeuse par exemple, avec une variable globale ça pourrait arriver.
S'il y a erreur avec les binding, une variable globale n'y changerait rien.
Sans éléments (code, valeurs au moment des erreurs, circonstances etc...) impossible de t'aider.
De plus, je serai absent quelques jours, il faudra attendre un autre membre ou mon retour.
WPF nécessite de bien comprendre le fonctionnement de la programmation objet, et de bien coder en C# aussi.
Tu pourrais mettre ton projet de coté quelques jours, le temps de suivre ce cours https://tahe.developpez.com/dotnet/csharp/, il te donnera des bonnes bases en C#.
Tu peux aussi suivre un cours d'UML, pour l'objet ça peut être bien (j'ai fait sans, mais ça m'a pris du temps).
Eventuellement, tu peux aussi lire ce tuto, https://codes-sources.commentcamarche.net/faq/11239-la-programmation-objet-appliquee-a-net-par-l-exemple-partie-1-sur-3 il reflète 10 années d'autodidacte en C#
Serait-il possible de crée les objets en dehors du code behind de la page pour ensuite les utiliser sur les fenêtres voulus
ça s'appelle une variable globale, c'est généralement déconseillé, et c'est même considéré comme une erreur de conception en programmation objet, car cela expose la donné à tout va.
Je t'ai donné un Verre comme exemple, et bien il n'a pas à avoir accès aux données d'une tondeuse par exemple, avec une variable globale ça pourrait arriver.
j'ai tenter cette méthode mais elle me provoque des erreurs notamment sur mes Bindind.
S'il y a erreur avec les binding, une variable globale n'y changerait rien.
Sans éléments (code, valeurs au moment des erreurs, circonstances etc...) impossible de t'aider.
De plus, je serai absent quelques jours, il faudra attendre un autre membre ou mon retour.
WPF nécessite de bien comprendre le fonctionnement de la programmation objet, et de bien coder en C# aussi.
Tu pourrais mettre ton projet de coté quelques jours, le temps de suivre ce cours https://tahe.developpez.com/dotnet/csharp/, il te donnera des bonnes bases en C#.
Tu peux aussi suivre un cours d'UML, pour l'objet ça peut être bien (j'ai fait sans, mais ça m'a pris du temps).
Eventuellement, tu peux aussi lire ce tuto, https://codes-sources.commentcamarche.net/faq/11239-la-programmation-objet-appliquee-a-net-par-l-exemple-partie-1-sur-3 il reflète 10 années d'autodidacte en C#
Hamster18
Messages postés
177
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
8 mai 2019 à 23:19
8 mai 2019 à 23:19
D'accord je vais m'y pencher.
Merci.
Cordialement.
Merci.
Cordialement.
Modifié le 5 mai 2019 à 21:10
Cependant cette ligne m'entraine l'erreur " objet ne contient pas de définition pour ItemsSource...", du coup je l'ai enlever...
Dans le code XAML j'ai oublier de mettre la balise Window dans lequel je définie :
j'ai donc un code XAML ressemblant à cela :
Cordialement.