2010-02-24 130 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