Я Свойство массива называется Value
:массива изменения события
public string[,] Value { get; set; }
Я хочу, чтобы вызвать метод Save()
, когда любое значение массива (а не весь массив) изменилось.
Есть ли простой способ его реализации?
Я Свойство массива называется Value
:массива изменения события
public string[,] Value { get; set; }
Я хочу, чтобы вызвать метод Save()
, когда любое значение массива (а не весь массив) изменилось.
Есть ли простой способ его реализации?
Не совсем. Массивы очень примитивные и не уведомляйте вас, когда что-то изменится.
Лучшее, что вы можете сделать, это создать который действует как 2D-массив, но, кроме того, он вызывает событие, когда элемент был изменен. Затем ваш текущий класс подписывается на это событие и вызывает Save()
.
Некоторые дополнительные комментарии:
Save()
при вызове установщика индексатора. Смотри ниже.public string this[int x, int y] { get { return this.localArray[x,y]; } set { this.localArray[x,y] = value; this.Save(); } }
Почему бы не создать собственный индексатор (например, одного here, так что вы точно знаете, когда ваш «массив» обновляется? Вы можете позвонить Save
из сеттера.
Не используйте массив. Подумайте ObservableCollection <>, сделайте свой собственный, если тот, который находится в коробке, не соответствует вашим потребностям. И отпустите setter, вы не хотите, чтобы клиентский код разорвал ваши уведомления.