2010-02-24 3 views
3

Я пробовал поиск вверх и вниз для этого, но ничего не могу найти. У меня есть combobox в списке. Listview привязан к списку объектов, открытых через контроллер, к которому привязан datacontext. Одним из свойств элементов в списке является строка. Я пытаюсь связать это значение с тем, что находится в combobox.Bind SelectedValue в combobox WPF

Вот отрывок из моей 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> 

В контроллере у меня есть свойство, называемое OrderLines как такой

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

      orderLines= value; 

      OnPropertyChanged("OrderLines"); 
     } 
    } 

И в OrderLine только имеет свойство LineType, что представляет собой строку, содержит значение.

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

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

Может кто-нибудь объяснить, почему выбранный элемент/значение не задано. Это связано с тем, что мой контент жестко закодирован? Спасибо за вашу помощь.

ответ

4

Он, вероятно, не связывается, потому что LineType является строкой, а ComboBox содержит ComboBoxItems и строку! = ComboBoxItem.

попробовать что-то вдоль

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

, где система является пространством имен ссылок системы в mscorlib

+0

Спасибо большое. Это сработало. –

Смежные вопросы