Quote:
public string SelectedFile {
...
set {
if (selectedFile != value) {
selectedFile = value;
OnPropertyChanged(nameof(SelectedFile));
LoadFromXmlFile(selectedFile);
}
}
}
...
private void LoadFromXmlFile(string selectedFile) {
...
pipesFromSelectedFile = new ObservableCollection<SteelPipeSize>();
foreach (var pipe in pipes.SteelPipes) {
pipesFromSelectedFile.Add(pipe);
}
}
When the selected file changes, you raise the "property changed" event for the
SelectedFile
property, but you never raise the event for the
PipesFromSelectedFile
property.
Try changing the
LoadFromXmlFile
method to use the property instead:
private void LoadFromXmlFile(string selectedFile) {
...
var pipesFromSelectedFile = new ObservableCollection<SteelPipeSize>();
foreach (var pipe in pipes.SteelPipes) {
pipesFromSelectedFile.Add(pipe);
}
PipesFromSelectedFile = pipesFromSelectedFile;
}