0

私は開発に Silverlight を使用しています。現在、ComboBox を ObservableCollection にバインドしたいと考えています。ただし、ObservableCollection は SelectedItem 内にあるため、期待どおりに機能するかどうかはわかりません。

ItemsSource={Binding SelectedItem.SourceList}とを試しましItemsSource={Binding Path=SelectedItem.SourceList}たが、どちらの方法でも必要な出力が得られません。

誰かが何か考えがあれば...どうもありがとう

編集:オブジェクト内の ObservableCollection は BerthList です。この BerthList の項目は、ユーザーが以前に選択したポートによって制限されます。ViewModel 内に Berths の ObservableCollection を配置すると、問題が発生します。

ポート A にバース A と B があるとします。Port B には Berth C と D があります。最初のアイテムに Port A/Berth A の組み合わせを選択した場合(このアイテムをタイムシートと呼びましょう)、次のアイテムに移動して Port B を選択すると、Bam、私の Berth 選択バース リストにポート A がなくなったため、最初の項目が表示されなくなりました。

これが物事を説明するのに役立つのだろうか...

4

2 に答える 2

0

あなたのモデルは少し奇妙に聞こえますが、選択したアイテムに実際のソースが含まれている理由がわかりません。ドメインに関する詳細情報を提供すると役立つかもしれません。つまり、あなたのクラスは何ですか?

とにかく、バインディングの問題はおそらくSource. ソースを明示的に指定しない場合、バインディングは DataContext をソースとして使用します (データ バインディングについて書いたこのチュートリアルは、この概念を理解するのに役立つかもしれません)。とにかく、それを修正するには、ソースを ComboBox に設定します...

<ComboBox x:Name="myCombo"
          ItemsSource={Binding SelectedItem.SourceList, ElementName=myCombo}">
于 2012-05-04T10:15:16.140 に答える
0

コンボボックスに SelectedItem を含めるには、最初に ItemSource が必要です。問題に対するあなたのアプローチは正しくないようです。

ObservableCollection が SelectedItem とは何の関係もないアプローチを見つけてみてください。

于 2012-05-04T10:18:57.510 に答える