public void UpdateInfo() { //共有データのクリア viewData.ClearEventList(); //現在表示されているもの以外は表示状態を残して破棄 foreach (var v in vItems.ToList()) { if (v.Value.IsVisible == false) { grid.Children.Remove(v.Value); if (v.Value == view) { view = null; } v.Value.SaveViewData(); EpgViewState state = v.Value.GetViewState(); if (state != null) { vStates[state.viewMode] = state; } vItems.Remove(v.Key); } else { v.Value.UpdateInfo(); } } }
/// <summary>設定の更新通知</summary> public void UpdateSetting(bool noRestoreState = false) { try { SaveViewData(); //表示していた番組表の情報を保存 var item = tabControl.SelectedItem as EpgTabItem; if (item != null) { if (noRestoreState == false && item.view != null) { oldState = item.view.GetViewState(); } oldID = item.Uid; } //一度全部削除して作り直す。 //保存情報は次回のタブ作成時に復元する。 tabInfo.Clear(); tabControl.Items.Clear(); UpdateInfo(); } catch (Exception ex) { CommonUtil.DispatcherMsgBoxShow(ex.Message + "\r\n" + ex.StackTrace); } //UpdateInfo()は非表示の時走らない。 //データはここでクリアしてしまうので、現に表示されているもの以外は表示状態はリセットされる。 //ただし、番組表(oldID)の選択そのものは保持する。 oldState = null; }
/// <summary>設定の更新通知</summary> public void UpdateSetting(bool noRestoreState = false) { try { SaveViewData(); //表示していた番組表の情報を保存 var item = tabControl.SelectedItem as EpgTabItem; if (item != null) { if (noRestoreState == false && item.view != null) { oldState = item.view.GetViewState(); } oldID = item.Uid; } //一度全部削除して作り直す。 //保存情報は次回のタブ作成時に復元する。 tabInfo.Clear(); tabControl.Items.Clear(); //実際にEPGが読込まれたかと無関係に、操作感としてこれでいい。 UpdateInfo(!Settings.Instance.NgAutoEpgLoadNW); } catch (Exception ex) { CommonUtil.DispatcherMsgBoxShow(ex.ToString()); } //UpdateInfo()はオプションによるガ非表示の時走らない。 //データはここでクリアしてしまうので、現に表示されているもの以外は表示状態はリセットされる。 //ただし、番組表(oldID)の選択そのものは保持する。 oldState = null; }
public void CleanUpContent(bool clear = false) { //ReloadInfo()後に再セットする。 grid.Children.Clear(); //現在表示されているものまたは事前構築に該当しているもの以外は表示状態を残して破棄 vItems.Where(v => isStockView(v.Key, clear) == false).ToList().ForEach(v => { v.Value.SaveViewData(); EpgViewState state = v.Value.GetViewState(); if (state != null) { vStates[state.viewMode] = state; } vItems.Remove(v.Key); }); }
public EpgTabItem(CustomEpgTabInfo setInfo, string selectID = null, EpgViewState state = null) { //この番組表の表示エリアを登録 grid_tab.Children.Add(grid); //番組情報を登録 Info = setInfo; if (state != null) { Info.ViewMode = state.viewMode; } if (state != null) { vStates[state.viewMode] = state; } if (base.Uid == selectID) { base.IsSelected = true; } }
public void CreateContent(CustomEpgTabInfo setInfo = null, EpgViewState state = null, int?viewMode = null) { bool update = setInfo != null; if (setInfo != null) { Info = setInfo; } if (viewMode != null) { Info.ViewMode = (int)viewMode; } //表示中のものはデータを保存して非表示に if (view != null) { view.SaveViewData(); } if (view != null) { view.Visibility = Visibility.Collapsed; } //Updateかかる場合はストックをクリア if (setInfo != null) { UpdateInfo(); } if (vItems.ContainsKey(Info.ViewMode) == true) { view = vItems[Info.ViewMode]; } else { switch (Info.ViewMode) { case 1: //1週間表示 view = new EpgWeekMainView(); break; case 2: //リスト表示 view = new EpgListMainView(); break; default: //標準ラテ欄表示 view = new EpgMainView(); break; } if (state == null) { vStates.TryGetValue(Info.ViewMode, out state); } view.SetViewState(state); view.ViewSettingClick += viewSettingClick; view.SetViewData(viewData); vItems[Info.ViewMode] = view; vStates.Remove(Info.ViewMode); } AddViewDataToGrid(); }
public EpgTabItem(CustomEpgTabInfo setInfo, EpgDataView epgview, string selectID = null, EpgViewState state = null) { //この番組表の表示エリアを登録 epgView = new EpgDataView.EpgDataViewInfo(epgview); epgView.grid.Children.Add(grid); viewData.ViewSettingClick += epgView.viewSettingClick; //番組情報を登録 Info = setInfo; if (state != null) { Info.ViewMode = state.viewMode; } if (state != null) { vStates[state.viewMode] = state; } if (base.Uid == selectID) { IsSelected = true; } }