/// <summary>
        /// Loads the data.
        /// </summary>
        /// <param name="filterSelector">The filter selector.</param>
        public void LoadData(Func<TransferingItem, bool> filterSelector)
        {
            ThreadPool.QueueUserWorkItem((o) =>
            {
                var list = o as ObservableCollection<TransferingItem>;
                System.Collections.Generic.IEnumerable<TransferingItem> query = null;
                if (TargetAccount != null)
                {
                    query = AccountBookDataContext.TransferingItems
                        .Where(filterSelector)
                        .Where(p => p.ToAccountName == TargetAccount.Name
                                    || p.FromAccountName == TargetAccount.Name);
                }
                else
                {
                    query = AccountBookDataContext.TransferingItems
                      .Where(filterSelector).OrderByDescending(p => p.TransferingDate);
                }

                var dates = query.Select(p => p.TransferingDate.Date)
                    .OrderByDescending(p => p)
                    .Distinct().ToList();
                var tempGroups = new List<DateTimeBasedGroupingViewModel<TransferingItem>>();
                foreach (var date in dates)
                {
                    var group = new DateTimeBasedGroupingViewModel<TransferingItem>(date);

                    group.AddRange(query.Where(p => p.TransferingDate.Date == date));

                    tempGroups.Add(group);
                }

                Deployment.Current.Dispatcher.BeginInvoke(() =>
                {
                    GroupItems = tempGroups;
                });

                IsDataLoaded = true;
            });
        }
        private void AddItemToGroup(TransferingItem entry)
        {
            var group = this.GroupItems.FirstOrDefault(p => p.Key == entry.TransferingDate.Date);

            if (group == null)
            {
                group = new DateTimeBasedGroupingViewModel<TransferingItem>(entry.TransferingDate);

                this.GroupItems.AddRange(group);
            }

            group.Add(entry);
        }