2013-12-04 5 views
0

Как привязать ComboBox к списку строки вот мой список:как связать 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"/> 

Редактировать

Plz отметить, что мой COMBOBOX находится внутри DataTemplate Thks

+1

Что такое 'DataContext' вашего' ComboBox'? ваша 'm_Category' должна быть свойством' DataContext'. –

+0

Как определить datacontext –

+0

В чем разница между DataContext и itemsource –

ответ

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 ; 
    } 
+0

OP хочет что-то настроить прямо в коде XAML. –

+0

он не просил, чтобы ясность читала вопрос –

+0

. Мне понравилось, что вы упомянули, но это не сработало; о M_Category, где его заполнять? –

0

Первый из всех l проверить, установлен ли DataContext для вашего ComboBox, иначе привязка не будет работать.

Ваш файл XAML должен выглядеть следующим образом:

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

он должен работать, если у вас все еще есть проблемы, посмотрите в этой post

+0

Итак, как я могу добавить dataContext в combobox –

+0

Его довольно простой вопрос, если вы не знакомы с DataContext и как он работает, Я предлагаю вам прочитать следующую статью: http://www.codeproject.com/Articles/321899/DataContext-in-WPF – Ofir

Смежные вопросы