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

Windows Presentation Foundation Discussion :

double binding sur combobox >>> possible?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut double binding sur combobox >>> possible?
    bonjour a tous,

    J'ai un gros soucis de gestion de binding sur une combobox. voici un bref aperçu de mon soucis:

    - d'un coté j'ai un dataset qui contient une table de ma DB avec differents champ:
    > Nom
    > Prenom
    > Sexe

    -de l'autre coté j'ai ma combobox qui dois permettre la visualisation/modification du Champ "sexe"

    Dans ma combobox je ne dois avoir que deux items ("Homme","Femme"). Je cherche a faire un binding afin qu'en fonction de l'enregistrement selectionné, que l'item séléctionné de la combobox soit le même que la valeur du champ "Sexe".
    Je n'y arrive pas.

    J'ai testé un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <ComboBox
                IsSynchronizedWithCurrentItem="True" 
                ItemsSource="{Binding}"
                DisplayMemberPath="Sexe"
                Margin="0,0,164,154"
    Mais dans ce cas dans le combobox j'ai autant d'éléments que d'enregistrements dans ma base.

    Donc comment faire pour n'avoir que deux items dans la combobox ("Homme","Femme") et que le bon soit sélectionné en fonction du numero d'enregistrement de la base de donnée?

    merci pour votre aide car la je bloque completement (pour info je debute en WPF donc soyez indulgent)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut
    Je ferai un binding de ItemsSource sur une liste des sexes chargés depuis ta BD ou alors un binding sur une énumération.

    Et ton SelectedItem bindé sur la propriété Sexe de ton objet.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    salut,

    merci pour ta réponse. C'est ce que j'ai essayé de faire.

    J'ai essayé de binder une enumeration sur la propriété Itemsource de la combobox.
    et un second binding de mon dataset sur la propriété Itemselected.... Mais le soucis c'est que je n'y arrive pas (faut dire que je debute en wpf)

    aurais tu un petit exemple fonctionnel a me fournir?

    merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Tu as ce post qui explique comment binder un enum à une comboBox.
    http://www.developpez.net/forums/d76...bobox-enumere/

    Si t'as un soucis pour l'appliquer, dis le

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    bon, je dois être une cruche car je n'y arrive pas

    J'ai declaré mon enum de cette façon:

    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
     
    namespace AuCBmaker
    {
        /// <summary>
        /// Logique d'interaction pour frmParam.xaml
        /// </summary>
        /// 
     
        public partial class frmParam : Page
        {
     
            private BASE.DBDataSet.ParamDBDataTable ParamDB;
            private CollectionView dataView;
     
            public enum Flx
            {
                _15ml= 0,
                _30ml= 1,
                _60ml= 2
            }
     
            internal CollectionView DataView
            {
                get
                {
                    if (dataView == null)
                    {
                        dataView = (CollectionView)
                            CollectionViewSource.GetDefaultView(
                            this.DataContext);
                    }
                    return dataView;
                }
            }
     
            public frmParam()
            {
                InitializeComponent();
     
                ParamDBTableAdapter customersTableAdapter = new ParamDBTableAdapter();
                ParamDB = customersTableAdapter.GetData();
                this.DataContext = ParamDB; 
             }    
        }
     
    }
    dans la partie xaml de ma page, j'ai ça:
    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
     
    <Page
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Class="AuCBmaker.frmParam"
        Title="frmParam" Width="700" Height="500" Background="#FF9CAEEC" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
     
     
    <Page.Resources>
            <ObjectDataProvider x:Key="flacon" MethodName="Flx" ObjectType="{x:Type sys:Enum}">
    </Page.Resources>
     
        <Grid d:IsLocked="True">               
            <ListBox
                IsSynchronizedWithCurrentItem="True" 
                ItemsSource="{Binding}" 
                DisplayMemberPath="Param_ParamDB"  
                Name="ParamListbox" 
                HorizontalAlignment="Left" 
                Margin="35,96,0,140" 
                Width="266"
            />
     
    <ComboBox ItemsSource="{Binding Source={StaticResource flacon}}" />
    la j'ai une erreur:
    le type Enum est introuvable
    ..... c'est du a quoi?

    sinon pour le deuxieme binding sur mon dataset, je dois mettre quoi pour qu'en fonction de l'element selectionné dans la listbox, la selection de l'item de la combobox soit le bon?, un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <ComboBox 
    ItemsSource="{Binding Source={StaticResource flacon}}" 
    SelectedItem="{Binding Path=VR1_ParamDB}"
    />
    ps: pour info la table "ParamDB" de ma base mdb, contient les champs:
    -Param_ParamDB (bindé sur la listbox)
    -VR1_ParamDB (que je cherche a binder sur le selectedItem de la combobox)

    voila, j'espere avoir été assez clair.... mais c loin d'être sur

    en tout cas merci pour votre aide,

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    L'erreur que tu a sur l'enum veut dire que tu as oublié de définir le Namespace :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <Page ...
      xmlns:sys="clr-namespace:System;assembly=mscorlib" >

Discussions similaires

  1. Double binding sur objet complex
    Par babass77 dans le forum Flex
    Réponses: 5
    Dernier message: 29/04/2011, 10h08
  2. Binding sur combobox
    Par NejNej dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 15/03/2011, 15h08
  3. Binding sur une combobox
    Par duaner dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/08/2009, 15h48
  4. [Spring MVC] <spring:bind sur combobox
    Par coyote999 dans le forum Spring Web
    Réponses: 2
    Dernier message: 28/02/2008, 14h32

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