Entity Frameworkバージョン4を使用してSQL Serverデータベースからデータを取得するアプリケーションにmvvmパターンを使用しています。WPFアプリケーションには1つのビューしかありません。アプリはそれほど大きくない)。私はリストボックス内のデータベースからプロパティのコレクションを表示しています、私のviewmodelにobservablecollectionを作成し、これをバインドします。これは期待どおりに動作します。問題は、私は今、別のリストボックス(同じビュー内に)それぞれのプロパティのためにImagesを配置する必要があるということです。明らかにするために、各プロパティには一連のイメージがありますが、各イメージは1つのプロパティにのみ割り当てられます。イメージにObservableCollectionを使用する必要があります
画像を表示するにはどうすればいいでしょうか、私はおそらく画像の別のobservablecollectionを作成すると思っていましたが、どのようにして適切なプロパティの画像のみが表示されるかはわかりません。または、単に各プロパティ(ハウス)のImagesプロパティにリストボックスをバインドする必要がありますか?明らかに異なる責任(マスター/詳細ビュー)のように聞こえる
乾杯
private void Load()
{
PropertyList = new ObservableCollection<Property>((from property in entities.Properties.Include("Images")
select property));
propertyView = CollectionViewSource.GetDefaultView(PropertyList);
if (propertyView != null)
propertyView.CurrentChanged += new System.EventHandler(propertyView_CurrentChanged);
RaisePropertyChanged("CurrentContact");
RaisePropertyChanged("SaleTitle");
RaisePropertyChanged("Address");
RaisePropertyChanged("AuctioneerName");
RaisePropertyChanged("AgentName");
RaisePropertyChanged("Price");
RaisePropertyChanged("NextBid");
RaisePropertyChanged("Status");
}
私は観察可能なコレクションを使用する必要があると思うが、私が間違っている場合は私を修正してください。私のプログラムは、個々の画像を削除、追加、ドラッグすることができる必要があります。このボックスには、適切なプロパティのイメージのみが表示されます。これを実装するのが難しいと思っているところでは、私は既にobservableコレクション内のプロパティオブジェクトにイメージを追加して割り当てました(データベースに保存することができます)。リストボックスをイメージのリストにバインドするだけで表示できることは分かっていますが、現在選択されているイメージを確認して削除できるようにする必要があります。 – randomalbumtitle
編集を参照してください。あなたのケースでは、個別に画像を追加/削除するので、あなたは正しい - ObservableCollectionを使用する必要があります。どのイメージが選択されているかを追跡するため、ViewModelにSelectedIndexプロパティを追加しました。これを(たとえば)WPF ListBoxのSelectedIndexプロパティにバインドして、現在選択されているものを追跡することができます。 – Doug