@@ -37,6 +37,9 @@ private void SetInputPack(Data.DynamicInputPack pack)
3737
3838 private string _saved_document = null ;
3939
40+ private Window _edit_emulated_devices_window ;
41+ private Window _edit_host_devices_window ;
42+
4043 private Data . DynamicInputPack InputPack
4144 {
4245 get
@@ -62,32 +65,40 @@ private void QuitProgram_Click(object sender, RoutedEventArgs e)
6265
6366 private void EditHostDevices_Click ( object sender , RoutedEventArgs e )
6467 {
65- var user_control = new Controls . EditHostDevices { DataContext = InputPack } ;
66- Window window = new Window
68+ if ( _edit_host_devices_window != null )
69+ {
70+ _edit_host_devices_window . Close ( ) ;
71+ }
72+
73+ _edit_host_devices_window = new Window
6774 {
6875 Title = "Editing Host Devices" ,
69- Content = user_control ,
7076 ResizeMode = ResizeMode . NoResize ,
7177 SizeToContent = SizeToContent . WidthAndHeight ,
7278 Owner = Application . Current . MainWindow
7379 } ;
7480
75- window . ShowDialog ( ) ;
81+ UpdateEditWindows ( ) ;
82+ _edit_host_devices_window . Show ( ) ;
7683 }
7784
7885 private void EditEmulatedDevices_Click ( object sender , RoutedEventArgs e )
7986 {
80- var user_control = new Controls . EditEmulatedDevices { DataContext = InputPack } ;
81- Window window = new Window
87+ if ( _edit_emulated_devices_window != null )
88+ {
89+ _edit_emulated_devices_window . Close ( ) ;
90+ }
91+
92+ _edit_emulated_devices_window = new Window
8293 {
8394 Title = "Editing Emulated Devices" ,
84- Content = user_control ,
8595 ResizeMode = ResizeMode . NoResize ,
8696 SizeToContent = SizeToContent . WidthAndHeight ,
8797 Owner = Application . Current . MainWindow
8898 } ;
8999
90- window . ShowDialog ( ) ;
100+ UpdateEditWindows ( ) ;
101+ _edit_emulated_devices_window . Show ( ) ;
91102 }
92103
93104 public static RoutedUICommand SaveAsCmd = new RoutedUICommand ( "Save as..." , "SaveAsCmd" , typeof ( MainWindow ) ) ;
@@ -124,6 +135,7 @@ private void OpenData_Click(object sender, RoutedEventArgs e)
124135 var settings = new JsonSerializerSettings ( ) { ObjectCreationHandling = ObjectCreationHandling . Replace } ;
125136 SetInputPack ( JsonConvert . DeserializeObject < Data . DynamicInputPack > ( input , settings ) ) ;
126137 _saved_document = dialog . FileName ;
138+ UpdateEditWindows ( ) ;
127139 }
128140 }
129141
@@ -137,6 +149,7 @@ private void OpenData_CanExecute(object sender, CanExecuteRoutedEventArgs e)
137149 private void NewData_Click ( object sender , RoutedEventArgs e )
138150 {
139151 SetInputPack ( new Data . DynamicInputPack ( ) ) ;
152+ UpdateEditWindows ( ) ;
140153 _saved_document = null ;
141154 }
142155
@@ -165,5 +178,20 @@ private void SaveDataAs_CanExecute(object sender, CanExecuteRoutedEventArgs e)
165178 e . CanExecute = true ;
166179 }
167180 #endregion
181+
182+ private void UpdateEditWindows ( )
183+ {
184+ if ( _edit_emulated_devices_window != null )
185+ {
186+ var user_control = new Controls . EditEmulatedDevices { DataContext = InputPack } ;
187+ _edit_emulated_devices_window . Content = user_control ;
188+ }
189+
190+ if ( _edit_host_devices_window != null )
191+ {
192+ var user_control = new Controls . EditHostDevices { DataContext = InputPack } ;
193+ _edit_host_devices_window . Content = user_control ;
194+ }
195+ }
168196 }
169197}
0 commit comments