2012-03-19 4 views
0

私はwpfアプリケーションにComboBoxを持っています。 ItemsSourceは、DataSetの一部のテーブルにバインドされています。 他のオブジェクトプロパティにバインドするには、textプロパティが必要です。 ComboBoxは2つのDataContextを取得したくないので、私は動作しません。どうすればこの問題を解決できますか?背後にあるコードでは2つのDataContextにコンボボックスをバインドする

<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; 

私は、コンボボックスが1のDataContextからアイテムを表示するのではなく、別のDataContextからテキストを表示したいです。どうしたらいいですか?

+1

ような何か? – gaurawerma

+0

@ gaurawerma ComboBoxのアイテムは、1つのdatacontextにあり、textプロパティは別のDataContextにバインドされています。動作しません。 –

答えて

1

DataContextを使用しないでください。 XAMLでバインディングのSourceプロパティを設定するか、bindings in codeを作成し、そこでSourceプロパティを設定します。

0

なぜスタックパネルのデータコンテキストに何かを割り当てるのですか?それの外観からは、使用されていません。

MyDataSet.Tables[MyTable]が列挙を返し、MyPropertyというプロパティが含まれている場合は、コードが機能するはずです。

コンボボックスが「2つのDataContextを取得したくない」と言ったらどういう意味ですか?

コンボボックスのプロパティIsEditableIsReadOnlyを調べます。

0

まさにあなたの要件が何であるかを

<ComboBox x:Name="MyComboBox" ItemsSource="{Binding}" Text={Binding ElementName=MyStackPanel Path=DataContext.MyProperty} /> 
関連する問題