//パネル系画面の移動用 public static object MoveNextReserve(ref int itemIdx, PanelViewBase view, IEnumerable <ReserveViewItem> reslist, ref Point jmpPos, UInt64 id, int direction, bool move = true, JumpItemStyle style = JumpItemStyle.MoveTo) { Point pos = jmpPos; jmpPos = new Point(-1, -1); if (reslist.Any() == false) { return(null); } List <ReserveViewItem> list = reslist.OrderBy(d => d.Data.StartTimeActual).ToList(); ReserveViewItem viewItem = null; int idx = id == 0 ? -1 : list.FindIndex(item => item.Data.ReserveID == id); if (idx == -1 && pos.X >= 0) { viewItem = list.GetNearDataList(pos).First(); idx = list.IndexOf(viewItem); } else { idx = ViewUtil.GetNextIdx(itemIdx, idx, list.Count, direction); viewItem = list[idx]; } if (move == true) { view.ScrollToFindItem(viewItem, style); } if (move == true) { itemIdx = idx; } return(viewItem == null ? null : viewItem.Data); }
protected virtual void MoveViewNextItem(int direction, bool toRefData = false) { object NewData = toRefData || DataView == null || DataView.IsVisible == false ? null : DataView.MoveNextItem(direction, DataID, true, JumpItemStyle.None); if (NewData == null) { IEnumerable <KeyValuePair <UInt64, object> > idList = DataRefList; if (idList == null || idList.Any() == false) { return; } var list = idList.ToList(); NewData = list[selIdx = ViewUtil.GetNextIdx(selIdx, list.FindIndex(d => d.Key == DataID), list.Count, direction)].Value; } ChangeData(NewData); }
public virtual object MoveNextItem(int direction, UInt64 id = 0, bool move = true, JumpItemStyle style = JumpItemStyle.MoveTo) { if (DataListBox == null || DataListBox.Items.Count == 0) { return(null); } var list = DataListBox.Items.OfType <IGridViewSorterItem>().ToList(); var selected = DataListBox.SelectedIndex == -1 ? list.FindIndex(d => d.KeyID == id) : DataListBox.SelectedIndex; var item = list[ViewUtil.GetNextIdx(itemIdx, selected, list.Count, direction)]; if (move == true) { ItemIdx = ViewUtil.ScrollToFindItem(item, DataListBox, style); } return(UnPack(item)); }