Спасибо за быстрый ответ, Blechdose, это очень помогло.
Для соглашения об именах: Это не для моей работы, это просто проект хобби, так что никаких изменений в том, как вы его предложили, нет. *
Я понял, что неправильно применил INotifyPropertyChanged. Итак, я переписал его, после небольшого поиска я понял, что если я использую пакет FodyPropertyChanged NuGet для плетения своей сборки, мой код может быть немного чище.
Я также изменил свои arrayLists на ObservableCollections. (Я использовал только аргумент arrayList, так как он был новичком в программировании, он мне показался подходящим)
class MainWindowViewModel : BaseViewModel
{
public static ObservableCollection<string> SystemList { get; set; } = new ObservableCollection<string>();
//--------------------------------------------------------------------------------------------//
public static ObservableCollection<string> TitleList { get; set; } = new ObservableCollection<string>();
//--------------------------------------------------------------------------------------------//
public static ObservableCollection<string> RevisionList { get; set; } = new ObservableCollection<string>();
//--------------------------------------------------------------------------------------------//
public static ObservableCollection<DocumentModel> DocumentList { get; set; } = new ObservableCollection<DocumentModel>();
//--------------------------------------------------------------------------------------------//
public static string SystemFilter { get; set; } = String.Empty;
//--------------------------------------------------------------------------------------------//
А что касается BaseViewModel, я сохранил:
public class BaseViewModel : INotifyPropertyChanged
{
/// <summary>
/// The event that is fired when any child poperty changes its value
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
}
И я установил Fody PropertyChanged, чтобы я Не нужно каждый раз устанавливать что-то вроде этого:
private string mTest;
public string Test
{
get
{
return mTest;
}
set
{
if (mTest == value)
return;
mTest = value;
PropertyChanged(this, new PropertyChangedEventArgs(nameof(Test)));
}
}
Спасибо за отзыв. Теперь это работает правильно. (Пока хотя бы :))