protected override void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { base.UserControl_IsVisibleChanged(sender, e);//ここでタブが生成される if (this.IsVisible == true) { if (SearchJumpTargetProgram(BlackoutWindow.Create64Key()) == false) { BlackoutWindow.Clear();//見つからなかったときのゴミ掃除 } //TabItem.IsVisibleChangedは使わず、SearchJumpTargetProgram()による移動の後に実行する if (tabControl.SelectedIndex != -1) { var tab = tabControl.SelectedItem as EpgTabItem; if (tab.view == null) { tab.CreateContent(); } } } }
/// <summary> /// 予約一覧からのジャンプ先を番組表タブから探す /// </summary> void searchJumpTargetProgram() { UInt64 serviceKey_Target1 = BlackoutWindow.Create64Key(); if (serviceKey_Target1 == 0) { return; } foreach (TabItem tabItem1 in this.tabControl.Items) { var epgView1 = tabItem1.Content as EpgDataViewItem; foreach (UInt64 serviceKey_OnTab1 in epgView1.GetViewMode().ViewServiceList) { if (serviceKey_Target1 == serviceKey_OnTab1) { tabItem1.IsSelected = true; return; } } } }
protected override void OnLoadingSubProc() { // サービス選択 UInt64 serviceKey_Target = BlackoutWindow.Create64Key(); if (serviceKey_Target == 0) { return; } foreach (ComboBoxItem item in this.comboBox_service.Items) { EpgServiceInfo serviceInfo = item.DataContext as EpgServiceInfo; if (serviceKey_Target == serviceInfo.Create64Key()) { if (this.comboBox_service.SelectedItem != item) { this.comboBox_service.SelectedItem = item; } break; } } }