如何将ComboBox绑定到字符串列表

时间:2013-12-04 13:52:14

标签: c#

如何将ComboBox绑定到字符串列表 这是我的清单:

  public ObservableCollection<string> m_Category = 
                                              new ObservableCollection<string>();

 <ComboBox x:Name="MyComboBox" Height="Auto" Width="Auto"  
        ItemsSource="{Binding m_Category, NotifyOnTargetUpdated=True,Mode=TwoWay,
        UpdateSourceTrigger=PropertyChanged}" SelectedIndex ="0"  
        SelectionChanged ="MyComboBox_SelectionChanged"/>

修改

请注意我的comboBox位于DataTemplate中 THKS

2 个答案:

答案 0 :(得分:1)

你不应该在ItemsSource中使用绑定,因为你没有在这里设置datacontext 只是在后面的代码中执行此操作(在填充m_Category之后)

MyComboBox.ItemsSource =  m_Category ; 

否则你应该创建一个包含这样的属性的类,你的绑定将起作用

 public class MyDataContext
        {
    ObservableCollection<string> m_Category = 
                                              new ObservableCollection<string>();
        public  ObservableCollection<string>   M_Category 
    { get;set}
      }

//像这样更改你的绑定

 <ComboBox x:Name="MyComboBox" Height="Auto" Width="Auto"  
        ItemsSource="{Binding M_Category, NotifyOnTargetUpdated=True,Mode=TwoWay,
        UpdateSourceTrigger=PropertyChanged}" SelectedIndex ="0"  
        SelectionChanged ="MyComboBox_SelectionChanged"/>
在你的主窗口中你可以做这样的事情

 public MainWindow()
    {
        InitializeComponent();
         MyDataContext myDataContext =  new  MyDataContext(); 
           //for example here  
            For(i=0;i<100;i++)
                    myDataContext.M_category.Add(yourItem)
        this.DataContext =  myDataContext ; 
    }

答案 1 :(得分:0)

首先检查是否将DataContext设置为ComboBox,否则绑定将不起作用。

您的XAML文件应如下所示:

 <ComboBox Name="cbPropName" ItemsSource="{Binding Path=m_Category}" />

它应该有用,如果你还有问题,请查看post