Я пытаюсь добавить свойства к моей модели, играя с моим первым MVVM-приложением. Теперь я хочу добавить место для сохранения конкретных данных в чистом виде, поэтому я использовал структуру. Но у меня возникают проблемы с уведомлением об изменении свойства, у него нет доступа к методу (Ссылка на объект требуется для нестатического поля) Может кто-нибудь объяснить мне, почему это происходит, и сообщить мне о стратегии, которая соответствует моей потребности?structs и INotifyPropertyChanged
Спасибо!
public ObservableCollection<UserControl> TimerBars
{
get { return _TimerBars; }
set
{
_TimerBars = value;
OnPropertyChanged("TimerBars");
}
}
public struct FBarWidth
{
private int _Stopped;
public int Stopped
{
get { return _Stopped; }
set
{
_Stopped = value;
OnPropertyChanged("Name"); //ERROR: An object reference is required for the non-static field
}
}
private int _Running;
//And more variables
}
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
'FBarWidth' не реализует никаких INotifyPropertyChanged и метод OnPropertyChanged не определен в этой области структуры. Разве вы даже не видите этого? Это очень простое понимание C#. –
Ну все это внутри класса, который реализует INotifyPropertyChanged. И все, что работает с регулярными переменными, но когда я хочу использовать структуру для определения «сгруппированных» переменных, я не могу заставить ее работать. И да, я совершенно новичок в этом .. – Unhek
На основании вашего последнего комментария; Посмотрите мой обновленный ответ ниже. – Mathias