// [SalesOrder 一覧] ウィンドウ -> 新しい受注... void NewSalesOrderCommand(object sender, ExecutedRoutedEventArgs e) { // 気にせずどんどん開く。 var dialog = new SalesOrderEditWindow(0, OnSalesOrderChanged); dialog.Show(); }
// [SalesOrder 一覧] ウィンドウ -> 受注の詳細... void SalesOrderDetailExecuted(object sender, ExecutedRoutedEventArgs args) { // ただ一つの編集ウィンドウを表示する、という挙動のほうが簡単。 // ここでは, ウィンドウをリサイクルする例. int id = ((SalesOrder)args.Parameter).Id; if (soEditWindows.ContainsKey(id)) { soEditWindows[id].Focus(); } else { var dialog = new SalesOrderEditWindow(id, OnSalesOrderChanged); soEditWindows.Add(id, dialog); dialog.Closed += (s, e) => { soEditWindows.Remove(id); }; dialog.Show(); } }