Ejemplo n.º 1
0
        private void cmdDown_Click(object sender, RoutedEventArgs e)
        {
            MCriteriaColumn o = (MCriteriaColumn)(sender as Button).Tag;

            ReArrangeOrder(vw.SortingColumns, o, true);
            vw.IsModified = true;
        }
Ejemplo n.º 2
0
        private void ReArrangeOrder(ObservableCollection <MBaseModel> items, MCriteriaColumn vw, Boolean isDown)
        {
            ArrayList arr = new ArrayList();

            int currIdx = -1;
            int min     = 99999999;
            int max     = 0;
            int idx     = 0;

            foreach (MCriteriaColumn v in items)
            {
                int seq = int.Parse(v.ItemSeqNo);
                if (seq < min)
                {
                    min = seq;
                }

                if (seq > max)
                {
                    max = seq;
                }

                if (v.SeqNo.Equals(vw.ItemSeqNo))
                {
                    currIdx = idx;
                }

                arr.Add(v);
                idx++;
            }

            int             cnt  = idx++;
            MCriteriaColumn swap = null;

            if (isDown)
            {
                if (currIdx >= cnt - 1)
                {
                    //Do nothing, this is the last item in the rows
                    return;
                }

                swap = (MCriteriaColumn)arr[currIdx + 1];
            }
            else
            {
                //Up
                if (currIdx <= 0)
                {
                    //Do nothing, this is the first item
                    return;
                }

                swap = (MCriteriaColumn)arr[currIdx - 1];
            }

            CTable o1 = vw.GetDbObject();
            CTable o2 = swap.GetDbObject();

            String tmp = swap.ItemSeqNo;

            swap.ItemSeqNo = vw.ItemSeqNo;
            vw.ItemSeqNo   = tmp;

            vw.SetDbObject(o2);
            swap.SetDbObject(o1);

            vw.updateFlag();
            swap.updateFlag();

            vw.NotifyAllPropertiesChanged();
            swap.NotifyAllPropertiesChanged();
        }