/// <summary> /// Open the rules manager. /// </summary> /// <param name="sender">The manage rules button.</param> /// <param name="eventArgs">The event arguments.</param> private void OnManageRules(object sender, RoutedEventArgs eventArgs) { WindowDebtRuleManager manager = new WindowDebtRuleManager(); manager.Owner = this; manager.Entity = this.Entity; //manager.DebtRule = this.debtRule.SelectedItem as DebtRule; manager.Closed += this.OnRuleManagerClosed; manager.Show(); Win32Interop.DisableWindow(this); }
/// <summary> /// Handle the DebtRule changing. Register with DebtRule property change events and populate the window. /// </summary> /// <param name="sender">The debt rule manager.</param> /// <param name="eventArgs">The event arguments.</param> private static void OnDebtRuleChanged(DependencyObject sender, DependencyPropertyChangedEventArgs eventArgs) { WindowDebtRuleManager manager = sender as WindowDebtRuleManager; if (manager.DebtRule != null) { if (eventArgs.OldValue is DebtRule) { (eventArgs.OldValue as DebtRule).PropertyChanged -= manager.OnDebtRuleChanged; } if (manager.DebtRule != null) { manager.DebtRule.PropertyChanged += manager.OnDebtRuleChanged; FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(manager.Populate, manager.DebtRule.DebtRuleId); } } }