У меня проблемы с обновлением пользовательского интерфейса после обновления моего свойства ObservableCollection.
Мой конструктор:
public ObservableCollection<Positions> Positions { get; set; }
public BindableBase BindableBase { get; set; }
public MainWindow()
{
InitializeComponent();
Positions = new ObservableCollection<Positions>();
BindableBase = new BindableBase();
Positions.Add(new Positions
{
Position1 = "Red",
Position2 = "Red",
Position3 = "Red",
Position4 = "Gray",
Position5 = "Green",
Position6 = "Green",
Position7 = "Green",
});
this.DataContext = this;
}
Это оператор if, который изменяет значения внутри ObservableCollection, а затемЯ вызываю событие RaisePropertyChanged с именем моей собственности.Поскольку я не включил весь код, представьте, что он идет внутри ifstatement.
if (Positions[0].Position4 == "Gray")
{
Positions[0].Position1 = "Red";
Positions[0].Position2 = "Red";
Positions[0].Position3 = "Gray";
Positions[0].Position4 = "Red";
Positions[0].Position5 = "Green";
Positions[0].Position6 = "Green";
Positions[0].Position7 = "Green";
BindableBase.RaisePropertyChanged("Positions");
}
Это мой код для RaisePropertyChanged:
public class BindableBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Проблема в том, что он необновить пользовательский интерфейс, если я вызываю событие RaisePropertyChanged.После некоторой отладки я обнаружил, что PropertyChanged имеет значение NULL, поэтому он не будет обновляться даже после внесения изменений.Кто-нибудь как решить эту проблему?