private List <KeyValuePair <OrderStatusEnum, OrderStatusEnum> > getActionsFromCheckBoxes(Panel panel) { List <KeyValuePair <OrderStatusEnum, OrderStatusEnum> > retVal = new List <KeyValuePair <OrderStatusEnum, OrderStatusEnum> >(); List <CheckBox> cbList = panel.Children.OfType <CheckBox>().ToList(); foreach (CheckBox item in cbList) { if ((item.IsChecked ?? false) && (item.Tag != null)) { KeyValuePair <OrderStatusEnum, OrderStatusEnum> actionPair = KDSModeHelper.GetStatusPairFromIntPair(item.Tag.ToString()); if (actionPair.Key != OrderStatusEnum.None) { retVal.Add(actionPair); } } } return((retVal.Count == 0) ? null : retVal); }
// выбор роли КДСа // для предопредл.роли отобразить флажки и дизаблить private void rbKDSMode_Checked(object sender, RoutedEventArgs e) { RadioButton rbChecked = (RadioButton)sender; KDSModeEnum kdsMode; if (Enum.TryParse <KDSModeEnum>(rbChecked.Tag.ToString(), out kdsMode)) { KDSModeStates kdsStates = KDSModeHelper.DefinedKDSModes[kdsMode]; // установить флажки состояний foreach (CheckBox item in pnlStates.Children.OfType <CheckBox>()) { OrderStatusEnum eStatus = (OrderStatusEnum)Convert.ToInt32(item.Tag); item.IsChecked = (kdsStates.AllowedStates.Contains(eStatus)); } // установить флажки действий KeyValuePair <OrderStatusEnum, OrderStatusEnum> kvp; foreach (CheckBox item in pnlActions.Children.OfType <CheckBox>()) { if (item.Tag != null) { kvp = KDSModeHelper.GetStatusPairFromIntPair(item.Tag.ToString()); item.IsChecked = ((kvp.Key != OrderStatusEnum.None) && (kdsStates.AllowedActions.Contains(kvp))); } } if (kdsMode == KDSModeEnum.Special) { pnlStates.IsEnabled = true; pnlActions.IsEnabled = true; } else { pnlStates.IsEnabled = false; pnlActions.IsEnabled = false; } } } // method