public override void Dispose()
        {
            MeaningFilterVm.FilterChanged -= OnFilterChanged;
            MeaningFilterVm.Dispose();

            ReadingFilterVm.FilterChanged -= OnFilterChanged;
            ReadingFilterVm.Dispose();

            TagsFilterVm.FilterChanged -= OnFilterChanged;
            TagsFilterVm.Dispose();

            TypeFilterVm.FilterChanged -= OnFilterChanged;
            TypeFilterVm.Dispose();

            LevelFilterVm.FilterChanged -= OnFilterChanged;
            LevelFilterVm.Dispose();

            CategoryFilterVm.FilterChanged -= OnFilterChanged;
            CategoryFilterVm.Dispose();

            JlptLevelFilterVm.FilterChanged -= OnFilterChanged;
            JlptLevelFilterVm.Dispose();

            WkLevelFilterVm.FilterChanged -= OnFilterChanged;
            WkLevelFilterVm.Dispose();

            base.Dispose();
        }
 /// <summary>
 /// Clears all filters.
 /// </summary>
 private void ClearFilters()
 {
     MeaningFilterVm.ClearFilter();
     ReadingFilterVm.ClearFilter();
     TagsFilterVm.ClearFilter();
     TypeFilterVm.ClearFilter();
     LevelFilterVm.ClearFilter();
     CategoryFilterVm.ClearFilter();
     JlptLevelFilterVm.ClearFilter();
     WkLevelFilterVm.ClearFilter();
 }
        /// <summary>
        /// Event callback.
        /// Called when a filter is changed.
        /// Recomputes the filter clauses and issues a FilterChanged event.
        /// </summary>
        private void OnFilterChanged(object sender, EventArgs e)
        {
            Filter.FilterClauses = new FilterClause[]
            {
                MeaningFilterVm.GetFilterClause(),
                    ReadingFilterVm.GetFilterClause(),
                    TagsFilterVm.GetFilterClause(),
                    TypeFilterVm.GetFilterClause(),
                    LevelFilterVm.GetFilterClause(),

                /*CategoryFilterVm.GetFilterClause(),
                 * JlptLevelFilterVm.GetFilterClause(),
                 * WkLevelFilterVm.GetFilterClause()*/
            }.Where(f => f != null)
            .ToArray();

            if (FilterChanged != null)
            {
                FilterChanged(sender, e);
            }
        }