メイン ウィンドウを表示するときに、linq-to-sql からオブジェクトのリストを作成します。
using (var context = new Data.TVShowDataContext())
{
Shows = new ObservableCollection<Data.Show>(context.Shows);
listShows.ItemsSource = Shows;
}
ここで、リスト内の項目をダブルクリックすると、選択したオブジェクトを新しいユーザー コントロールで使用したいと考えています。
ShowEpList epList = new ShowEpList();
epList.DataContext = (Data.Show)listShows.SelectedItem;
さて、これは例外になります:
System.ObjectDisposedException は処理
されませんでした Message="破棄されたオブジェクトにアクセスできません。\r\nオブジェクト名: 'DataContext は Dispose 後にアクセスされました.'."
Source="System.Data.Linq"
ObjectName="Dispose 後にアクセスされる DataContext。"
これは、リストをショーのシーズンリストにバインドした結果であり、シーズンリストにデータを入力する必要があるか、何かが必要なためだと思います。
<ListBox Name="listSeasons" ItemsSource="{Binding Seasons}"/>
さて、私が知りたいのは、これがどのように行われることになっているのですか? 新しい DataContext オブジェクトを作成して、選択したショーを再度取得する必要がありますか? または、ショーを新しい datacontext に再接続してシーズン リストに入力することは可能ですか?
ちょっと寂しいかな……。