2010-02-24 165 views
3

我試過尋找上下這個,但找不到任何東西。我在列表視圖中有一個組合框。 listview綁定到通過控制器公開的datacontext綁定的對象列表。列表中項目的其中一個屬性是一個字符串。我試圖將該值綁定到組合框中的內容。將SelectedValue綁定到WPF組合框

這裏是我的列表視圖

<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"); 
     } 
    } 

而一個訂單行只是有一個屬性叫做線型這是一個字符串,包含該值。

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

非常感謝。這工作。 – 2010-02-24 21:09:45