/// <summary>EPGデータの表示モードを設定する</summary> /// <param name="setInfo">[IN]表示モードの設定値</param> public void SetViewMode(CustomEpgTabInfo setInfo, object state = null) { //表示モード一緒で、絞り込み内容変化のみ。 if (viewCtrl != null) { CustomEpgTabInfo viewInfo = viewCtrl.GetViewMode(); if (viewInfo != null && viewInfo.ViewMode == setInfo.ViewMode) { viewInfo = setInfo.Clone(); viewCtrl.SetViewMode(viewInfo); return; } } //切り替える場合 SaveViewData(); switch (setInfo.ViewMode) { case 1: //1週間表示 viewCtrl = new EpgWeekMainView(); break; case 2: //リスト表示 viewCtrl = new EpgListMainView(); break; default: //標準ラテ欄表示 viewCtrl = new EpgMainView(); break; } viewCtrl.ViewSettingClick += new ViewSettingClickHandler(item_ViewSettingClick); viewCtrl.SetViewMode(setInfo); if (state != null) { SetViewState(state); } grid_main.Children.Clear(); grid_main.Children.Add(viewCtrl as UIElement); }
private void epgView_ViewSettingClick(EpgViewBase sender, int param) { try { EpgTabItem tab = Tabs.FirstOrDefault(ti => ti.view == sender); if (tab == null) { return; } if (param < -2 || 2 < param) { return; } CustomEpgTabInfo info = null; if (param == -1) { //表示設定変更ダイアログから var dlg = new EpgDataViewSettingWindow(tab.Info); dlg.Owner = CommonUtil.GetTopWindow(this); dlg.SetTryMode(Settings.Instance.UseCustomEpgView == false); if (dlg.ShowDialog() == false) { return; } info = dlg.GetSetting(); if (info.Uid != tab.Uid) { return; //保険 } //設定の保存。 if (Settings.Instance.UseCustomEpgView == true && Settings.Instance.TryEpgSetting == false && info.ID >= 0 && info.ID < tabInfo.Count && info.ID < Settings.Instance.CustomEpgTabList.Count) { tabInfo[info.ID] = info; Settings.Instance.CustomEpgTabList[info.ID] = info; Settings.SaveToXmlFile(); SettingWindow.UpdatesInfo("番組表関連の変更"); } if (info.IsVisible == false) { tabControl.Items.Remove(tab); return; } } else if (param == -2) { info = tabInfo.Find(tinfo => tinfo.ID == tab.Info.ID); if (info == null) { return; } } //選択用タブの選択を切り替え。 tab_viewMode_Change(info != null ? info.ViewMode : param); tab.UpdateContent(info, param); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }