IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

WPF : VB.NET : Projet interface utilisateur communication entre 2 fenêtres


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut WPF : VB.NET : Projet interface utilisateur communication entre 2 fenêtres
    Bonjour
    J'ai un petit souci j'arrive pas faire une communication des contrôles entre la 2ème fenêtre et la principale MainWindow

    J'aimerais faire ceci

    1) quand l’utilisateur active la 1 checkbox dans la fenêtre Configuration, il crée une colonne dans la datagrid de la fenêtre principale : est-ce possible de le faire ?

    2) Concernant les colonnes et il y a deux type DataGridTextColumn et DataGridTemplateColumn qui va contenir mon UserControl

    3) prendre le content de la checkbox sélectionner et le mettre dans la colonne = Header et aussi d'autre chose comme la couleur

    4) Par la suite j'aimerais pouvoir exporter/importer le contenu de ma datagrid en xml : comment faire si les colonnes mis par l'utilisateur ne sont pas toujours les mêmes ?

    Voici en image + code
    Merci d'avance pour votre aide

    Nom : Capture12.PNG
Affichages : 446
Taille : 44,2 Ko

    XAML
    Code xaml : 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
    <Window x:Class="MainWindow"
            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:WpfApDatagridTest"
            mc:Ignorable="d"
            Title="MainWindow" Height="387" Width="549">
        <Grid>
            <DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Margin="35,75,0,0" VerticalAlignment="Top" Height="215" Width="484"/>
            <Button x:Name="button" Content="Setting" Margin="444,23,22,0" VerticalAlignment="Top"/>
            <Button x:Name="button1" Content="Import" HorizontalAlignment="Left" Margin="35,23,0,0" VerticalAlignment="Top" Width="75"/>
            <Button x:Name="button2" Content="Export" HorizontalAlignment="Left" Margin="140,23,0,0" VerticalAlignment="Top" Width="75"/>
     
        </Grid>
    </Window>

    VB.NET Configuration

    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
    public Class Configuration
     
        Dim wm As New MainWindow
        Private Sub checkBox1_Checked(sender As Object, e As RoutedEventArgs) Handles checkBox1.Checked
            If checkBox1.IsChecked Then
     
                Dim col0 As New DataGridTemplateColumn
                'User control ??
                col0.DisplayIndex = 0
                col0.Header = checkBox1.Content
     
                wm.dataGrid.Columns.Add(col0) 'Fonctionne pas
     
            End If
        End Sub
    End Class

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par RodeoGame Voir le message
    Bonjour
    J'ai un petit souci j'arrive pas faire une communication des contrôles entre la 2ème fenêtre et la principale MainWindow

    J'aimerais faire ceci

    1) quand l’utilisateur active la 1 checkbox dans la fenêtre Configuration, il crée une colonne dans la datagrid de la fenêtre principale : est-ce possible de le faire ?
    Pour ma part j'utiliserait les événements. Tu raises un événement au clique sur la CheckBox en passant en paramètre les valeurs que tu souhaites transférer qui sera intercepté par la form principale (il faudra donc l'y abonner). Ensuite, quand tu reçoit l'événement sur ta form principale tu fait un invoke d'une méthode qui s'occupera de mettre à jours le contenu graphique de celle-ci.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par ZenZiTone Voir le message
    Pour ma part j'utiliserait les événements. Tu raises un événement au clique sur la CheckBox en passant en paramètre les valeurs que tu souhaites transférer qui sera intercepté par la form principale (il faudra donc l'y abonner). Ensuite, quand tu reçoit l'événement sur ta form principale tu fait un invoke d'une méthode qui s'occupera de mettre à jours le contenu graphique de celle-ci.
    Merci pour ton aide
    Je vais essayer ça.
    Au départ je pensais à utiliser le (Binding j'ai pas encore trouver comment faire cela) je suis encore trop juste au niveau de mes connaissances.

    Cordialement rodeo

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par RodeoGame Voir le message
    Merci pour ton aide
    Je vais essayer ça.
    Au départ je pensais à utiliser le (Binding j'ai pas encore trouver comment faire cela) je suis encore trop juste au niveau de mes connaissances.

    Cordialement rodeo
    Re bonjour
    j'ai pas réussi à le faire j'ai trouver une autre solution avec Expander
    J'ai un autre petit souci je trouve pas le moyen de fixer mes deux boutons add rows et delete rows lors de agrandissement de ma fenêtre principale.
    Merci d'avance pour votre aide
    Voici les images + code XAML

    image au départ

    Nom : main win 1.PNG
Affichages : 349
Taille : 18,1 Ko

    image de la fenêtre agrandissement

    Nom : mainwin2.PNG
Affichages : 358
Taille : 18,8 Ko

    Mon Code XAML

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    <Window x:Class="MainWindow"
            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:WpfExpanderTest2"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="900" WindowStartupLocation="CenterScreen" MinWidth="900" MinHeight="450">
     
        <TabControl x:Name="tabControl">
            <TabItem Header="Tool Import parts">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" MinHeight="65"/>
                        <RowDefinition/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="177*"/>
                        <ColumnDefinition Width="180*"/>
                        <ColumnDefinition Width="200*"/>
                        <ColumnDefinition Width="180*"/>
                        <ColumnDefinition Width="149*"/>
     
                    </Grid.ColumnDefinitions>
     
                    <GridSplitter x:Name="GridSplitter0" Grid.ColumnSpan="5" BorderThickness="1" BorderBrush="DarkSlateGray"
                          VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0,30,0,29">
                        <GridSplitter.Background>
                            <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
                                <GradientStop Color="#FF808385" Offset="0"/>
                                <GradientStop Color="#FFECF1F7" Offset="1"/>
                            </LinearGradientBrush>
                        </GridSplitter.Background>
                    </GridSplitter>
     
                    <Button x:Name="btn_Import" Content="Import" HorizontalAlignment="Left" Margin="10,3,0,0" VerticalAlignment="Top" Width="75" Height="20"/>
                    <Button x:Name="btn_Export" Content="Export" HorizontalAlignment="Left" Margin="93,3,0,0" VerticalAlignment="Top" Width="75" Height="20"/>
     
                    <Button x:Name="btn_Addrows" Content="Add Rows" HorizontalAlignment="Left" Margin="8,3,0,0" VerticalAlignment="Top" Width="75" Background="LightGreen" Grid.Column="1" Height="20" />
                    <Button x:Name="btn_Deleterows" Content="Delete Rows" HorizontalAlignment="Left" Margin="88,3,0,0" VerticalAlignment="Top" Width="75" Grid.Column="1" Background="LightPink" Height="20"/>
     
                    <ComboBox x:Name="ComboBox1" Height="22" Width="120" HorizontalAlignment="Left"  VerticalAlignment="Top" Margin="8,3,0,0" Grid.Column="2" SelectedIndex="0">
                        <ListBoxItem Content="Number Add Rows"/>
                        <ListBoxItem Content="1"/>
                        <ListBoxItem Content="5"/>
                        <ListBoxItem Content="10"/>
                        <ListBoxItem Content="25"/>
                        <ListBoxItem Content="50"/>
                        <ListBoxItem Content="100"/>
                        <ListBoxItem Content="250"/>
                        <ListBoxItem Content="500"/>
                    </ComboBox>
     
                    <Button x:Name="btn_Import_Project" Content="Import Parts Project" Grid.Column="4" Height="20" Width="120" Margin="0,3,10,0" HorizontalAlignment="Right" VerticalAlignment="Top" />
                    <Button x:Name="btn_close" Content="Close" Grid.Row="4" Grid.Column="4" Height="20" Width="80" Margin="0,0,10,1" HorizontalAlignment="Right" VerticalAlignment="Bottom" />
     
                    <DataGrid x:Name="datagrid1" Grid.ColumnSpan="5" VerticalAlignment="Stretch" Margin="0,40,0,0" Grid.RowSpan="2"/>
     
                    <Expander x:Name="Expander1" Grid.Row="4" Header="Setting" IsExpanded="False" BorderBrush="Black">
                        <StackPanel>
                            <CheckBox x:Name="Ckb0" Content="DT (Full)" Background="LightGray"/>
                            <Separator/>
                            <CheckBox x:Name="Ckb1" Content="Part Number 1" Background="LightGreen"/>
                            <CheckBox x:Name="Ckb2" Content="Part Variant 1" Background="LightGreen"/>
                            <Separator/>
                            <CheckBox x:Name="Ckb3" Content="Part Number 2" Background="LightGreen"/>
                            <CheckBox x:Name="Ckb4" Content="Part Variant 2" Background="LightGreen"/>
                            <CheckBox x:Name="Ckb5" Content="Part Number 3" Background="LightGreen"/>
                            <CheckBox x:Name="Ckb6" Content="Part Variant 3" Background="LightGreen"/>
                            <CheckBox x:Name="Ckb7" Content="Part Number 4" Background="LightGreen"/>
                            <CheckBox x:Name="Ckb8" Content="Part Variant 4" Background="LightGreen"/>
                            <CheckBox x:Name="Ckb9" Content="Part Number 5" Background="LightGreen"/>
                            <CheckBox x:Name="Ckb10" Content="Part Variant 5" Background="LightGreen"/>
                            <CheckBox x:Name="checkBox12" Content="Engraving (function)" Background="LightPink"/>
                            <CheckBox x:Name="checkBox13" Content="Output group (for loop)" Background="LightCoral"/>
                            <Separator/>
                            <CheckBox x:Name="checkBox14" Content="Designation (Cable)" Background="Aqua"/>
                            <CheckBox x:Name="checkBox15" Content="Filter cable (Remark)" Background="Aqua"/>
                            <CheckBox x:Name="checkBox16" Content="Lenght (Cable)" Background="Bisque"/>
                        </StackPanel>
                    </Expander>
     
                    <CheckBox x:Name="ckbreset" Content="Reset setting" Background="Red" Grid.Column="1" Grid.Row="4" Margin="3,4,0,0" Grid.ColumnSpan="3"></CheckBox>
     
                    <GridSplitter x:Name="GridSplitter1" Grid.Row="2" Grid.ColumnSpan="5" Height="6" BorderThickness="1" BorderBrush="DarkSlateGray"
                          VerticalAlignment="Center" HorizontalAlignment="Stretch" Grid.RowSpan="2">
                        <GridSplitter.Background>
                            <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
                                <GradientStop Color="#FF808385" Offset="0"/>
                                <GradientStop Color="#FFECF1F7" Offset="1"/>
                            </LinearGradientBrush>
                        </GridSplitter.Background>
                    </GridSplitter>
     
                </Grid>
            </TabItem>
            <TabItem Header="Tool Connection">
                <Grid Background="#FFE5E5E5"/>
            </TabItem>
        </TabControl>
     
    </Window>

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour j'ai la solution pour mes boutons

    c'est avec WrapPanel

    Il me reste plus que le point 3,4 à réaliser

    3) créer la colonne dans la datagrid en fonction de la checkbox sélectionne et mettre le content dans le header de la colonne

    4) Par la suite j'aimerais pouvoir exporter/importer le contenu de ma datagrid en xml : comment faire si les colonnes mis par l'utilisateur ne sont pas toujours les mêmes ?

    J'ai aucune idée comment faire cela

    Merci d'avance pour votre aide

Discussions similaires

  1. [Débutant] Communication entre deux fenêtres (WPF, MVVM)
    Par viktor56 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 29/11/2014, 14h48
  2. Réponses: 3
    Dernier message: 08/09/2009, 16h57
  3. Dossier utilisateur commun entre Vista et Mac
    Par sef10 dans le forum Apple
    Réponses: 2
    Dernier message: 22/01/2009, 15h25
  4. probleme de communication entre 2 fenêtres windev
    Par law56100 dans le forum WinDev
    Réponses: 9
    Dernier message: 24/04/2008, 12h14
  5. Communication entre 2 fenêtres
    Par pkdev dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 14/03/2005, 22h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo