public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values[1] == DependencyProperty.UnsetValue) { return(Visibility.Collapsed); } FilterFlagViewModel <ClassModel> filter = ForView.Unwrap <FilterFlagViewModel <ClassModel> >(values[0]); bool showAllClasses = (bool)values[1]; return(showAllClasses || filter.Filter.HasSpells ? Visibility.Visible : Visibility.Collapsed); }
private FilterFlagViewModel <ClassModel> GetClassFilterObject(ClassModel cc) { FilterFlagViewModel <ClassModel> newfilter = new FilterFlagViewModel <ClassModel>(cc, () => string.IsNullOrEmpty(cc.ShortName) ? cc.Name : cc.ShortName, false); foreach (var child in cc.Subclasses) { if (child.ShowInFilterList && child.HasSpells) { newfilter.AddChildFilter(GetClassFilterObject(child)); } } return(newfilter); }