Вот как я подозреваю, ваш код должен выглядеть (хотя он не совсем соответствует тому, что вы в данный момент делаете): -
public class YourClassHoldingThisStuff : INotifyProperyChanged
{
private ObservableCollection<ViewModel> _internal;
public ObservableCollection<ViewModel> BoundInternal
{
get { return _internal; }
set
{
_internal = value;
NotifyPropertyChanged("BoundInternal");
};
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged(this, new ProperytChangedEventArgs(name));
}
}
В этом случае поле _internal
становится источником значения BoundInternal
напрямую, и его следует назначать только через BoundInternal
(не присваивайте значение непосредственно _internal
). Когда это произойдет, все, что в данный момент связано с ним, будет проинформировано об изменении.
Если по какой-то причине вам действительно нужно сохранить _internal
как отдельную ссылку из вспомогательного поля BoundInternal
, тогда: -
public class YourClassHoldingThisStuff : INotifyProperyChanged
{
private ObservableCollection<ViewModel> _internal;
private ObservableCollection<ViewModel> _boundInternal;
public ObservableCollection<ViewModel> BoundInternal
{
get { return _boundInternal; }
set
{
_boundInternal = value;
NotifyPropertyChanged("BoundInternal");
};
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged(this, new ProperytChangedEventArgs(name));
}
}
Теперь, в какой-то момент в вашем коде, когда вы выполните BoundInternal = _internal
, все, что с ним связано, будет проинформировано об изменении.