【问题标题】:Bind SelectedValue to a WPF combobox将 SelectedValue 绑定到 WPF 组合框
【发布时间】:2010-02-24 19:11:36
【问题描述】:

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

这是我的列表视图的 sn-p

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

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

【问题讨论】:

    标签: wpf combobox wpf-controls


    【解决方案1】:

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

    尝试一下

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-11
      • 2015-07-11
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 2017-11-16
      • 2013-10-07
      相关资源
      最近更新 更多