2010-02-24 7 views
3

J'ai essayé d'effectuer une recherche de haut en bas, mais je ne trouve rien. J'ai une liste déroulante dans une liste. La listview est liée à une liste d'objets exposés via le contrôleur auquel le datacontext est lié. Une des propriétés des éléments de la liste est une chaîne. J'essaye de lier cette valeur à ce qui est dans la liste déroulante.Liaison de SelectedValue à une zone de liste déroulante WPF

Voici un extrait de mon listview

<ListView ItemsSource="{Binding Path=OrderLines}" > 

      <ListView.View> 
       <GridView> 
        <GridViewColumn Header="Item Type" Width="Auto"> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <ComboBox Width="100" SelectedItem="{Binding Path=LineType,ValidatesOnDataErrors=True}" > 

            <ComboBoxItem>Type1</ComboBoxItem> 
            <ComboBoxItem>Type2</ComboBoxItem> 
            <ComboBoxItem>Type3</ComboBoxItem> 
            <ComboBoxItem>Type4</ComboBoxItem> 
           </ComboBox> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn>  
       </GridView> 
      </ListView.View> 

Dans le contrôleur, j'ai une propriété appelée OrderLines comme tels

private List<OrderLine> orderLines; 
    public List<OrderLine> OrderLines 
    { 
     get { return orderLines; } 
     set 
     { 
      if (value == orderLines) 
       return; 

      orderLines= value; 

      OnPropertyChanged("OrderLines"); 
     } 
    } 

Et une ligne de commande a juste une propriété appelée LineType qui est une chaîne contient la valeur.

private string lineType; 
    public string LineType 
    { 
     get { return lineType; } 

     set 
     { 
      lineType= value; 
      OnPropertyChanged("LineType "); 
     } 
    } 

Quelqu'un peut-il aider à expliquer pourquoi l'élément/valeur sélectionné n'est pas défini? Cela a-t-il quelque chose à voir avec le fait que mon contenu soit codé en dur? Merci de votre aide.

Répondre

4

Il ne se lie probablement pas car LineType est une chaîne et ComboBox contient des ComboBoxItems, et une chaîne! = ComboBoxItem.

Essayez quelque chose le long

<ComboBox> 
     <system:String>Item1</system:String> 
     <system:String>Item2</system:String> 
</ComboBox> 

où le système est un espace de noms du système de référence dans mscorlib

+0

Merci beaucoup. Ça a marché. –

Questions connexes