From 9d0c7d1ffaa5919acf28524e525a8853bd09396f Mon Sep 17 00:00:00 2001 From: Foglio Date: Sun, 1 Oct 2023 12:00:30 +0200 Subject: [PATCH] wip loot config --- .../LootFilterConfigurationViewModel.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 TCC.Core/ViewModels/LootFilterConfigurationViewModel.cs diff --git a/TCC.Core/ViewModels/LootFilterConfigurationViewModel.cs b/TCC.Core/ViewModels/LootFilterConfigurationViewModel.cs new file mode 100644 index 00000000..3615102b --- /dev/null +++ b/TCC.Core/ViewModels/LootFilterConfigurationViewModel.cs @@ -0,0 +1,40 @@ +using Nostrum.WPF.Factories; +using Nostrum.WPF.ThreadSafe; +using System; +using System.ComponentModel; +using TCC.Data; +using TCC.Settings.WindowSettings; + +namespace TCC.ViewModels; + +public class LootFilterConfigurationViewModel : ThreadSafeObservableObject +{ + public ICollectionViewLiveShaping? ItemsView { get; } + public LootDistributionWindowSettings Settings { get; } + + string _searchFilter; + public string SearchFilter + { + get => _searchFilter; + set + { + if (_searchFilter == value) return; + _searchFilter = value; + N(); + + var view = (ICollectionView)ItemsView; + view.Filter = o => ((Item)o).Name.IndexOf(_searchFilter, StringComparison.InvariantCultureIgnoreCase) != -1; + view.Refresh(); + } + } + + + // todo: make 3 lists: items list, pass items list, drop items list, use drag&drop + + protected LootFilterConfigurationViewModel(LootDistributionWindowSettings settings) + { + ItemsView = CollectionViewFactory.CreateLiveCollectionView(Game.DB!.ItemsDatabase.Items); + + Settings = settings; + } +}