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 :

ComboBox Binding pour la liste et binding pour la valeur à afficher


Sujet :

Windows Presentation Foundation

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Points : 36
    Points
    36
    Par défaut ComboBox Binding pour la liste et binding pour la valeur à afficher
    Bonjour
    J'ai un soucis, j'ai une combobox dans une listBox.
    Ma listbox est binder sur un objectDataProvider(qui est instancié dans le code).
    J'ai un autre objectDataProvider qui correspond à une ObservableCollection c'est la liste que je veux afficher dans ma comboBox

    <ObjectDataProvider x:Key="UnitArrayObjectDataProvider" />
    <ObjectDataProvider x:Name="ObjectDataProviderProduct" x:Key="ProductObjectDataProvider" />

    <ListBox Name="unitListBox" ItemsSource="{Binding}" DataContext="{Binding Source ={StaticResource ProductObjectDataProvider},Path=productUnitArrayField/FMProductUnit}" IsSynchronizedWithCurrentItem="True">
    <ListBox.ItemTemplate>
    <DataTemplate >
    <Grid>
    <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>

    <ComboBox Name="valueComboBox" Grid.Row="1" Grid.Column="4" ItemsSource="{Binding Source={StaticResource UnitArrayObjectDataProvider}}" DisplayMemberPath="keyField" SelectedValuePath="keyField" Text="vdvdvdvdvd" />



    comment est que je peux binder la liste de (UnitArrayObjectDataProvider) et la valeur à afficher(ObjectDataProviderProduct) dans ma comboBox ?

    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    En fait, tu veux binder ta listbox à ta combobox (ou le contraire), c'est bien cela ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci mais c'est bon j'ai trouvé. En fait je voulais binder dans ma ComboBox une liste qui provenait d'un odp(ProductObjectDataProvider) et une valeur(la valeur sélectionné) qui provenait d'un autre odp(UnitArrayObjectDataProvider).

    J'ai utilisé les propriétes SelectedValue et SelectedValuePath
    Voilà comment j'ai fait:

    <Window.Resources>
    <ResourceDictionary>
    <ObjectDataProvider x:Key="ProductObjectDataProvider" />
    <ObjectDataProvider x:Key="UnitArrayObjectDataProvider" />
    </ResourceDictionary>
    </Window.Resources>

    <ListBox Name="unitListBox" ItemsSource="{Binding}" DataContext="{Binding Source ={StaticResource ProductObjectDataProvider},Path=productUnitArrayField/FMProductUnit}" IsSynchronizedWithCurrentItem="True" Height="200">
    <ListBox.ItemTemplate>
    <DataTemplate >
    <Grid>
    <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Label Name="fv" Grid.Row="0" Grid.Column="1" Content="entête" />
    <ComboBox Name="valueComboBox" Grid.Row="1" Grid.Column="4" ItemsSource="{Binding Source={StaticResource UnitArrayObjectDataProvider}}" SelectedValue="{Binding Path=valueField.keyField}" SelectedValuePath="keyField" DisplayMemberPath="keyField"/>
    <TextBox Name="ratioUnitTextBox" Grid.Row="1" Grid.Column="1" Text="{Binding Path=ratioField}" />
    <TextBox Name="refereUnitTextBox" Grid.Row="1" Grid.Column="2" Text="{Binding Path=refField.keyField}" />
    <TextBox Name="ValueUnitTextBox" Grid.Row="1" Grid.Column="3" Text="{Binding Path=valueField.keyField}" />
    </Grid>
    </DataTemplate>
    </ListBox.ItemTemplate>
    </ListBox>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/01/2014, 12h45
  2. [Débutant] Boucle pour déclaration du data binding. (pb avec adressof)
    Par Gualino dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/09/2011, 12h23
  3. Réponses: 2
    Dernier message: 27/04/2010, 12h01
  4. [Debutant(e)]conseil pour une liste ?
    Par Tymk dans le forum Débuter
    Réponses: 5
    Dernier message: 05/08/2004, 15h33

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