private void Open() { if (!SaveIfDirty()) { return; } var dialog = new OpenFileDialog() { Filter = Filter }; if (dialog.ShowDialog() == true) { _path = dialog.FileName; //Load up the project var projectModel = ProjectFactory.LoadProject(_path); //Get the slave (we're only going to grab the first one var slaveModel = projectModel?.Slaves?.FirstOrDefault() ?? new SlaveModel(); //Create the view model Slave = new SlaveViewModel(_modbusAdapters, slaveModel, _dirty); //We're clean people. _dirty.MarkClean(); } RaisePropertyChanged(() => Title); }