2009-10-15 7 views
2

J'essaye de lier une zone de liste déroulante avec certaines données. Le problème est que j'ai les données dans la zone de liste déroulante comme ceci:WPF Combo Box Liaison

      <ComboBox> 
           <ComboBoxItem>Item 1</ComboBoxItem> 
           <ComboBoxItem>Item 2</ComboBoxItem> 
           <ComboBoxItem>Item 3</ComboBoxItem> 
           <ComboBoxItem>Item 4</ComboBoxItem> 
           <ComboBoxItem>Item 5</ComboBoxItem> 
          </ComboBox> 

lorsque le formulaire avec la zone de liste déroulante est chargé je une ressource chargée qui a un int que je veux lier à ce combo boîte. Donc, si cet entier est 1, je veux que la liste déroulante affiche l'élément 1, etc. et quand je change l'élément de la liste déroulante, je veux mettre à jour cet int en conséquence.

Existe-t-il un moyen de lier cette ressource à la zone de liste déroulante pour réaliser cela?

Nous vous remercions à l'avance

Répondre

7

Voici un échantillon XAML complet sur la façon de le faire:

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:sys="clr-namespace:System;assembly=mscorlib" 
    Title="Window1"> 
    <Window.Resources> 
     <sys:Int32 x:Key="TheIndex">2</sys:Int32> 
    </Window.Resources> 
    <ComboBox SelectedIndex="{Binding Source={StaticResource TheIndex}, Mode=OneWay}"> 
     <ComboBoxItem>One</ComboBoxItem> 
     <ComboBoxItem>Two</ComboBoxItem> 
     <ComboBoxItem>Three</ComboBoxItem> 
     <ComboBoxItem>Four</ComboBoxItem> 
    </ComboBox> 
</Window> 

Notez les points suivants:

  • l'espace de noms XML sys est déclarée comme une cartographie à l'espace de noms System CLR dans le mscorlib assembly
  • la Binding sur SelectedIndex est réglé sur OneWay car sa valeur par défaut TwoWay, qui n'a pas de sens lors de la liaison directement à une ressource
+0

Bonjour Kent Merci pour votre réponse Je suis fearly nouveau pour WPF programmation et j'ai besoin plus d'explication au snipset que vous avez posté. Comment puis-je déclarer le 2 et comment cela est-il lié à ma ressource? Merci encore – Taonias

+0

@Taonias: pas de problème. J'ai mis à jour mon post avec un exemple de travail complet. –