Ejemplo n.º 1
0
 private void SimulateLiveshaping(ShortHealthRecordViewModel hrvm)
 {
     using (preserveSelected.Enter(SelectedHealthRecords)) // fix selection after CommitEdit when view grouping
     {
         SetHrExtra(hrvm.ToEnumerable());
         view.EditItem(hrvm);
         view.CommitEdit();
         //  logger.DebugFormat("commit {0}", hrvm);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Whenever any registered OptionControl raises the FilterChanged property changed event, we need to rebuild
 /// the new predicate used to filter the CollectionView.  Since Multiple Columns can have predicate we need to
 /// iterate over all registered OptionControls and get each predicate.
 /// </summary>
 /// <param name="sender">The object which has risen the event</param>
 /// <param name="e">The property which has been changed</param>
 void filter_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == "FilterChanged")
     {
         Predicate <object> predicate = null;
         foreach (var filter in Filters)
         {
             if (filter.HasPredicate)
             {
                 if (predicate == null)
                 {
                     predicate = filter.GeneratePredicate();
                 }
                 else
                 {
                     predicate = predicate.And(filter.GeneratePredicate());
                 }
             }
         }
         bool canContinue = true;
         var  args        = new CancelableFilterChangedEventArgs(predicate);
         if (BeforeFilterChanged != null && !IsResetting)
         {
             BeforeFilterChanged(this, args);
             canContinue = !args.Cancel;
         }
         if (canContinue)
         {
             ListCollectionView view = CollectionViewSource.GetDefaultView(this.ItemsSource) as ListCollectionView;
             if (view != null && view.IsEditingItem)
             {
                 view.CommitEdit();
             }
             if (view != null && view.IsAddingNew)
             {
                 view.CommitNew();
             }
             if (CollectionView != null)
             {
                 CollectionView.Filter = predicate;
             }
             if (AfterFilterChanged != null)
             {
                 AfterFilterChanged(this, new FilterChangedEventArgs(predicate));
             }
         }
         else
         {
             IsResetting = true;
             var ctrl = sender as ColumnFilterControl;
             ctrl.ResetControl();
             IsResetting = false;
         }
     }
 }
Ejemplo n.º 3
0
 public void FirePredicationGeneration()
 {
     {
         Predicate <object> predicate = null;
         foreach (var filter in Filters)
         {
             if (filter.HasPredicate)
             {
                 if (predicate == null)
                 {
                     predicate = filter.GeneratePredicate();
                 }
                 else
                 {
                     predicate = predicate.And(filter.GeneratePredicate());
                 }
             }
         }
         bool canContinue = true;
         var  args        = new CancelableFilterChangedEventArgs(predicate);
         if (BeforeFilterChanged != null && !IsResetting)
         {
             BeforeFilterChanged(this, args);
             canContinue = !args.Cancel;
         }
         if (canContinue)
         {
             ListCollectionView view = CollectionViewSource.GetDefaultView(this.ItemsSource) as ListCollectionView;
             if (view != null && view.IsEditingItem)
             {
                 view.CommitEdit();
             }
             if (view != null && view.IsAddingNew)
             {
                 view.CommitNew();
             }
             if (CollectionView != null)
             {
                 CollectionView.Filter = predicate;
             }
             if (AfterFilterChanged != null)
             {
                 AfterFilterChanged(this, new FilterChangedEventArgs(predicate));
             }
         }
         else
         {
             IsResetting = true;
             IsResetting = false;
         }
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Commits any editing and then refreshs the given view. Typically used when filter parameters have changed.
        /// </summary>
        /// <param name="lcv"></param>
        static public void refreshViewFilter(ListCollectionView lcv)
        {
            if (lcv.IsEditingItem)
            {
                lcv.CommitEdit();
            }

            else if (lcv.IsAddingNew)
            {
                lcv.CommitNew();
            }

            lcv.Refresh();
        }
Ejemplo n.º 5
0
        protected virtual void RemoveCommand(object sender, RoutedEventArgs e)
        {
            ListCollectionView lc = ListCollectionView;

            //if (lc.IsAddingNew)
            //    lc.CancelNew();
            //else
            //{

            lc.CommitEdit();
            foreach (var item in this.SelectedItems.ToArray())
            {
                lc.Remove(item);
            }
        }
Ejemplo n.º 6
0
 private void SavePerson(object o)
 {
     try
     {
         ListCollectionView lcv = GetIt <ListCollectionView>(PROP_NAME);
         if (lcv.IsEditingItem)
         {
             lcv.CommitEdit();
             ShowMessage("Changes are saved !");
         }
         else
         {
             ShowMessage("No Pending Changes.");
         }
     }
     catch (Exception ex)
     {
         ShowMessage(ex.Message);
     }
 }
Ejemplo n.º 7
0
        private void HeaderFilter_FilterFinsh(object sender, RoutedEventArgs e)
        {
            Predicate <object> predicate = null;

            foreach (var item in DataGridColumnHeaders)
            {
                DataGridColumnHeaderFilter dataGridColumnHeaderFilter = item.Tag as DataGridColumnHeaderFilter;
                if (dataGridColumnHeaderFilter.Predicate == null)
                {
                    continue;
                }
                if (predicate == null)
                {
                    predicate = dataGridColumnHeaderFilter.Predicate;
                }
                else
                {
                    predicate = predicate.Or(dataGridColumnHeaderFilter.Predicate);
                }
            }
            ListCollectionView view = CollectionViewSource.GetDefaultView(this.ItemsSource) as ListCollectionView;

            if (view != null && view.IsEditingItem)
            {
                view.CommitEdit();
            }
            if (view != null && view.IsAddingNew)
            {
                view.CommitNew();
            }
            if (CollectionView != null)
            {
                try
                {
                    CollectionView.Filter = predicate;
                }
                catch
                {
                }
            }
        }
        /// <summary>
        /// Removes the items from list collection view.
        /// </summary>
        /// <param name="theViewToUpdate">The view to update.</param>
        /// <param name="theRemoveList">The remove list.</param>
        public static void RemoveItemsFromListCollectionView(this ListCollectionView theViewToUpdate, List <object> theRemoveList)
        {
            //Finish all other state before remove item

            if (theViewToUpdate.IsAddingNew)
            {
                theViewToUpdate.CommitNew();
            }

            if (theViewToUpdate.IsEditingItem)
            {
                theViewToUpdate.CommitEdit();
            }

            //Remove items

            foreach (var item in theRemoveList)
            {
                theViewToUpdate.Remove(item);
            }

            //theViewToUpdate.Refresh();
        }
        public static void Clear(this ListCollectionView view)
        {
            if (view.IsAddingNew)
            {
                view.CommitNew();
            }
            if (view.IsEditingItem)
            {
                view.CommitEdit();
            }

            if (view.NewItemPlaceholderPosition != NewItemPlaceholderPosition.None)
            {
                view.NewItemPlaceholderPosition = NewItemPlaceholderPosition.None;
            }

            while (view.Count > 0)
            {
                var theItem = view.GetItemAt(0);
                view.Remove(theItem);
            }

            view.Refresh();
        }
Ejemplo n.º 10
0
        void filter_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "FilterChanged")
            {
                ColumnFilterControl cf = sender as ColumnFilterControl;

                Predicate <object> predicate = null;
                if (!IsFilterWindow)
                {
                    if (window != null)
                    {
                        predicate = FilterDataViewModel.Instance.FilterPredicate;
                        window.Close();
                    }
                }
                else
                {
                    foreach (var filter in Filters)
                    {
                        if (filter.HasPredicate)
                        {
                            if (predicate == null)
                            {
                                predicate = filter.GeneratePredicate();
                            }
                            else
                            {
                                predicate = predicate.And(filter.GeneratePredicate());
                            }
                        }
                        if (cf.FilterText == null)
                        {
                            if (predicate == null)
                            {
                                predicate = filter.GeneratePredicate();
                            }
                            else
                            {
                                predicate = predicate.And(filter.GeneratePredicate());
                            }
                        }
                    }
                }
                bool canContinue = true;
                var  args        = new CancelableFilterChangedEventArgs(predicate);
                if (BeforeFilterChanged != null && !IsResetting)
                {
                    BeforeFilterChanged(this, args);
                    canContinue = !args.Cancel;
                }
                if (canContinue)
                {
                    ListCollectionView view = CollectionViewSource.GetDefaultView(this.ItemsSource) as ListCollectionView;
                    if (view != null && view.IsEditingItem)
                    {
                        view.CommitEdit();
                    }
                    if (view != null && view.IsAddingNew)
                    {
                        view.CommitNew();
                    }
                    if (CollectionView != null)
                    {
                        try
                        {
                            CollectionView.Filter = predicate;
                        }
                        catch
                        {
                        }

                        int count = 1;
                        ObservableCollection <AllSelectedPropertyChanged> list = new ObservableCollection <AllSelectedPropertyChanged>();

                        foreach (var item in CollectionView)
                        {
                            AllSelectedPropertyChanged selectedModel = item as AllSelectedPropertyChanged;
                            //selectedModel.Num= count++;
                            list.Add(selectedModel);
                        }
                        foreach (var item in list)
                        {
                            if (item == null)
                            {
                                continue;
                            }
                            item.Num = count++;
                        }
                        //if(cf.FilterText!=null&& cf.FilterText.Trim() != "")
                        //{
                        if (list != null && list.Count > 0)
                        {
                            FilterFinshItemsSource = list;

                            if (AfterFilterChanged != null)
                            {
                                AfterFilterChanged(this, new FilterChangedEventArgs(predicate));
                            }
                        }

                        //}
                    }
                }
                else
                {
                    IsResetting = true;
                    var ctrl = sender as ColumnFilterControl;
                    ctrl.ResetControl();
                    IsResetting = false;
                }
            }
        }
Ejemplo n.º 11
0
        void filter_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "FilterChanged")
            {
                ColumnFilterControl cf = sender as ColumnFilterControl;

                Predicate <object> predicate = null;

                foreach (var filter in Filters)
                {
                    if (filter.HasPredicate)
                    {
                        if (predicate == null)
                        {
                            predicate = filter.GeneratePredicate();
                        }
                        else
                        {
                            predicate = predicate.And(filter.GeneratePredicate());
                        }
                    }
                    if (cf.FilterText == null)
                    {
                        if (predicate == null)
                        {
                            predicate = filter.GeneratePredicate();
                        }
                        else
                        {
                            predicate = predicate.And(filter.GeneratePredicate() == null ? predicate : filter.GeneratePredicate());
                        }
                    }
                }
                //bool canContinue = true;
                //var args = new CancelableFilterChangedEventArgs(predicate);
                //if (BeforeFilterChanged != null && !IsResetting)
                //{
                //    BeforeFilterChanged(this, args);
                //    canContinue = !args.Cancel;
                //}
                //if (canContinue)
                //{
                ListCollectionView view = CollectionViewSource.GetDefaultView(this.ItemsSource) as ListCollectionView;
                if (view != null && view.IsEditingItem)
                {
                    view.CommitEdit();
                }
                if (view != null && view.IsAddingNew)
                {
                    view.CommitNew();
                }
                if (CollectionView != null)
                {
                    try
                    {
                        CollectionView.Filter = predicate;
                    }
                    catch
                    {
                    }

                    //int count = 1;
                    ObservableCollection <ISelected> list = new ObservableCollection <ISelected>();

                    foreach (var item in CollectionView)
                    {
                        ISelected selectedModel = item as ISelected;
                        //selectedModel.Num= count++;
                        list.Add(selectedModel);
                    }
                    //foreach (var item in list)
                    //{
                    //    if (item == null)
                    //        continue;
                    //    item.Num = count++;
                    //}
                    if (list != null && list.Count > 0)
                    {
                        //FilterFinshItemsSource = list;

                        //if (AfterFilterChanged != null)
                        //    AfterFilterChanged(this, new FilterChangedEventArgs(predicate));
                    }
                }


                //}
                //else
                //{
                //    IsResetting = true;
                //    var ctrl = sender as ColumnFilterControl;
                //    ctrl.ResetControl();
                //    IsResetting = false;
                //}
            }
        }