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 XAML MVVM] Valeur par défaut d'un label ou textblock avant Binding


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut [WPF XAML MVVM] Valeur par défaut d'un label ou textblock avant Binding
    Bonjour à tous,

    J'avait trouvé mais impossible de remettre la main dessus. Le paramètre d'un label ou d'un texblock qui me permet d'avoir un texte par défaut pendant l’édition, avant le binding.

    Faisant un logiciel multilingue, tous mes labels et surtout textblock on un Content ou Text binding... Mais malheureusement en indiquant cela je n'est pas le texte par défaut lors de l’édition.

    Pourriez vous me rappeler le paramètre afin de rendre ma vue plus visuel et non pas des champs vides.


    Vue en Edition:

    Nom : Vue en edition.png
Affichages : 464
Taille : 4,2 Ko

    Vue en Debug:

    Nom : Vue en debug.png
Affichages : 460
Taille : 8,7 Ko


    Merci


    Il faut aussi que je change le texte de la fenêtre, mais je verrais cela plus tard.

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Il faut batailler avec les fenêtres modales ...
    C'est "TargetNullValue"
    le code xaml cherché est le suivant pour le class EtudiantVM:
    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
    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
    <Window x:Class="DialogNewStudent"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DialogNewStudent" Height="300" Width="300">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition></RowDefinition>
                <RowDefinition Height="auto"></RowDefinition>
            </Grid.RowDefinitions>
            <Border 
                Grid.Row="0"
                BorderBrush="Blue" BorderThickness="2">
                <StackPanel 
                    Background="Beige">
                    <Label 
                        Background="Aquamarine" 
                        HorizontalAlignment="Left" 
                        Content="Id :" Margin="10"/>
                    <!--pour la prop id rien à specifier car c'est un int -->
                    <!--il a toujours une valeur par defaut => ZERO -->
     
                    <TextBox 
                        HorizontalAlignment="Left" 
                        Text="{Binding Id}" Margin="10"/>
                    <Label 
                        HorizontalAlignment="Left" 
                        Background="Aquamarine" Content="Nom :" Margin="10"/>
                    <TextBox 
                        HorizontalAlignment="Left" 
                        Text="{Binding Nom,TargetNullValue=please enter a name}" Margin="10"/>
                </StackPanel>
            </Border>
            <Border 
                Grid.Row="1"
                Background="Yellow" >
                <Button 
                    x:Name="btnClose"
                    HorizontalAlignment="Center" 
                    Content="Close"
                    Click="btnClose_Click">
                </Button>
            </Border> 
        </Grid>
    </Window>
    Code behind .cs du Form Modal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Class DialogNewStudent
     
        Private Sub btnClose_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
            Me.DialogResult = True
            Me.Close()
        End Sub
    End Class
    Bon code..

  3. #3
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut
    Bonjour MABROUKI,

    La solution que vous m'avez donnez ne me conviens pas, car j'ai peut être pas été clair sur mon besoin, mais je ne cherchais pas a afficher un texte par défaut d'un une texbox, mais à afficher un texte par défaut dans tout ce qui est label, textblock etc. En faite dans les objets graphique non éditable, juste pour avoir un rendu cohérent dans la vue lors de l’édition.

    Toutefois votre solution, je la garde sous le code, car elle m’intéresse aussi, et surtout elle m'a permis de retrouver le paramètre que je cherchais.
    A savoir :FallbackValue='Equipment Editor', avec des simples cote' ... ' pour le texte à afficher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Title="{Binding MyTitle, FallbackValue='Equipment Editor'}" Height="379.772" Width="445.899">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <Label Name="LBLApplication" Content="{Binding LBL_Application,FallbackValue='Application :'}" Margin="10" />
    Ainsi en édition, j'ai bien un texte par défaut qui est affiché. et rend plus visuel la vue.

    Je n'est pas encore implémenté le changement de langue, mais le Binding de ces même labels et autre objet ont aussi une valeur par défaut que j'ai défini dans le Modèle.


    Merci pour la fermeture du formulaire, j'ai réussi aussi en utilisant le MVVM, mais pourquoi s’embêter pour cela, votre solution me conviens parfaitement et enlève un peu de code dans mon model-vue bien chargé.

Discussions similaires

  1. WPF Valeur par défaut ComboBox ne fonctionne qu'une seule fois.
    Par viktor56 dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 11/12/2015, 11h31
  2. [WPF] Valeur par défaut d'une DependencyProperty n'appelle pas le callback
    Par HanLee dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 01/04/2010, 21h36
  3. Valeur par défaut dans une table objet
    Par Ricky81 dans le forum Oracle
    Réponses: 12
    Dernier message: 18/03/2004, 11h52
  4. Réponses: 2
    Dernier message: 18/10/2003, 14h42
  5. Unique + valeur par défaut
    Par ketalie dans le forum Outils
    Réponses: 4
    Dernier message: 02/07/2003, 15h29

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