У меня есть ObservableCollection компонентов, класс с другой ObservableCollection, String и ComponentVersion.SelectedComponentVersion обновляется через мой вид правильно, но я не могу получить свойство Components для запуска его setter / OnPropertyChanged.
private ObservableCollection<Component> components
public ObservableCollection<Component> Components
{
get { return foo; }
set { foo = value; OnPropertyChanged(); }
}
Вот класс Component.
public class Component : ViewModelBase
{
private string componentName;
private ObservableCollection<ComponentVersion> componentVersions;
private ComponentVersion selectedComponent;
public string ComponentName
{
get { return componentName; }
set { componentName = value; OnPropertyChanged(); }
}
public ObservableCollection<ComponentVersion> ComponentVersions
{
get { return componentVersions; }
set { componentVersions = value; OnPropertyChanged(); }
}
public ComponentVersion SelectedComponent
{
get { return selectedComponent; }
set { selectedComponent = value; OnPropertyChanged(); }
}
public Component(string componentName, List<ComponentVersion> componentVersion)
{
ComponentName = componentName;
ComponentVersions = componentVersion.ToObservableCollection();
}
}
Затем у меня есть привязка из списка к свойству SelectedComponent внутри компонента.
Я прочитал бесчисленные переполнения стека о настройке CollectionChanged и безуспешно пытался реализовать его.
Components.CollectionChanged += stuff;
private void stuff(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
throw new System.NotImplementedException();
}
но это никогда не проверяется с помощью контрольных точек.
Я что-то упускаю полностью, схожу с ума или схожу с ума!Кто-то, пожалуйста, дайте мне точку в правильном направлении, если что-то из этого вообще имеет какой-либо смысл.
PS Еще одно решение, которое я думаю, заключалось бы в том, чтобы поместить невидимую кнопку внутри списка и заставить ее отправить командусообщить виртуальной машине, что выбранный элемент обновлен.