Привязать ComboBox к двум DataContexts - PullRequest
0 голосов
/ 19 марта 2012

У меня есть ComboBox в моем приложении wpf.Это ItemsSource привязан к некоторой таблице в моем DataSet.Мне нужно, чтобы текстовое свойство было привязано к чужому свойству объекта.Я не работаю, потому что ComboBox не хочет получать два DataContexts.Как я могу решить эту проблему?

 <StackPanel Width="Auto" Height="Auto" MinWidth="296" Orientation="Vertical" x:Name="MyStackPanel">                      
     <ComboBox x:Name="MyComboBox" ItemsSource="{Binding}" Text={Binding Path=MyProperty} />
 </StackPanel>

В коде:

MyComboBox.DataContext = MyDataSet.Tables[MyTable];
MyStackPanel.DataContext = MyObject;

Я хочу, чтобы ComboBox отображал элементы одного DataContext, но отображал текст другого DataContext.Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 19 марта 2012

Не используйте DataContext. Установите свойство Source ваших привязок в XAML или создайте привязки в коде и установите там свойство Source.

0 голосов
/ 19 марта 2012

Что-то вроде

 <ComboBox x:Name="MyComboBox" ItemsSource="{Binding}" Text={Binding ElementName=MyStackPanel Path=DataContext.MyProperty} />
0 голосов
/ 19 марта 2012

Почему вы назначаете что-то текстовому элементу стековой панели? Судя по всему, его не использовали.

Ваш код должен работать, если MyDataSet.Tables[MyTable] возвращает перечисление и содержит свойство с именем MyProperty.

Что вы имеете в виду, когда говорите, что выпадающий список "не хочет получать два DataContexts"?

Просмотрите свойства IsEditable и IsReadOnly в выпадающем списке.

...