将SelectedValue绑定到WPF组合框

时间:2010-02-24 19:11:37

标签: wpf combobox wpf-controls

我试过上下搜索但找不到任何东西。我在listview中有一个组合框。 listview绑定到通过datacontext绑定的控制器公开的对象列表。列表中项目的一个属性是字符串。我试图将该值绑定到组合框中的内容。

以下是我的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 ");
        }
    }

任何人都可以帮助解释为什么没有设置所选项目/值。这与我的内容硬编码有关吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

它可能没有绑定,因为LineType是一个字符串,ComboBox包含ComboBoxItems和一个字符串!= ComboBoxItem。

尝试一下

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

其中system是引用mscorlib中的System的命名空间