diff --git a/Filtration/Converters/BooleanToBlockMarginConverter.cs b/Filtration/Converters/BooleanToBlockMarginConverter.cs deleted file mode 100644 index 416d4c2..0000000 --- a/Filtration/Converters/BooleanToBlockMarginConverter.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Globalization; -using System.Windows; -using System.Windows.Data; - -namespace Filtration.Converters -{ - public class BooleanToBlockMarginConverter : IValueConverter - { - public double Length { get; set; } - - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - var item = (bool)value; - - if (!item) - return new Thickness(2, 0, 2, 0); - - return new Thickness(2, 2, 2, 2); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return ((Thickness)value) == new Thickness(0, 0, 0, 0); - } - } -} diff --git a/Filtration/Filtration.csproj b/Filtration/Filtration.csproj index fc275ee..4e0f402 100644 --- a/Filtration/Filtration.csproj +++ b/Filtration/Filtration.csproj @@ -167,7 +167,6 @@ - diff --git a/Filtration/ViewModels/ItemFilterScriptViewModel.cs b/Filtration/ViewModels/ItemFilterScriptViewModel.cs index 4cf2522..f7d3418 100644 --- a/Filtration/ViewModels/ItemFilterScriptViewModel.cs +++ b/Filtration/ViewModels/ItemFilterScriptViewModel.cs @@ -98,6 +98,7 @@ namespace Filtration.ViewModels private IItemFilterBlockViewModelBase _selectedBlockViewModel; private IItemFilterCommentBlockViewModel _sectionBrowserSelectedBlockViewModel; private readonly ObservableCollection _itemFilterBlockViewModels; + private ObservableCollection _viewItemFilterBlockViewModels; private ICollectionView _itemFilterBlockViewModelsCollectionView; private Predicate _blockFilterPredicate; private ICommandManager _scriptCommandManager; @@ -153,6 +154,8 @@ namespace Filtration.ViewModels icon.UriSource = new Uri("pack://application:,,,/Filtration;component/Resources/Icons/script_icon.png"); icon.EndInit(); IconSource = icon; + + _viewItemFilterBlockViewModels = new ObservableCollection(); } public void Initialise(IItemFilterScript itemFilterScript, bool newScript) @@ -174,6 +177,8 @@ namespace Filtration.ViewModels Title = Filename; ContentId = "ScriptContentId"; + + UpdateBlockModelsForView(); } private void ItemFilterBlocksOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs notifyCollectionChangedEventArgs) @@ -196,6 +201,8 @@ namespace Filtration.ViewModels break; } } + + UpdateBlockModelsForView(); } private void AddItemFilterBlockViewModels(IEnumerable itemFilterBlocks, int addAtIndex) @@ -278,6 +285,19 @@ namespace Filtration.ViewModels } } + public ObservableCollection ViewItemFilterBlockViewModels + { + get + { + return _viewItemFilterBlockViewModels; + } + set + { + _viewItemFilterBlockViewModels = value; + RaisePropertyChanged(); + } + } + public ObservableCollection ItemFilterBlockViewModels { get @@ -1191,6 +1211,22 @@ namespace Filtration.ViewModels else break; } + + UpdateBlockModelsForView(); + } + + private void UpdateBlockModelsForView() + { + ObservableCollection blocksForView = new ObservableCollection(); + foreach (var block in ItemFilterBlockViewModels) + { + if (block.IsVisible) + { + blocksForView.Add(block); + } + } + + ViewItemFilterBlockViewModels = blocksForView; } } } diff --git a/Filtration/Views/ItemFilterBlockView.xaml b/Filtration/Views/ItemFilterBlockView.xaml index ce00d76..98b941c 100644 --- a/Filtration/Views/ItemFilterBlockView.xaml +++ b/Filtration/Views/ItemFilterBlockView.xaml @@ -11,14 +11,13 @@ xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase" mc:Ignorable="d" d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterBlockViewModel}" - d:DesignHeight="200" d:DesignWidth="800" Visibility="{Binding IsVisible, Converter={StaticResource BooleanVisibilityConverter}}"> + d:DesignHeight="200" d:DesignWidth="800"> -