Ejemplo n.º 1
0
 private void de_Click(object sender, RoutedEventArgs e)
 {
     this.Dispatcher.Invoke(new Action(async() =>
     {
         while (true)
         {
             this.de.IsEnabled = false;
             foreach (var desk in ds.Values)
             {
                 if (desk.Status == false && ts.Count > 0)
                 {
                     desk.Status = true;
                     var current = ts.Dequeue();
                     this.rtb.AppendText($"请{current.QueueID}号顾客到{desk.DeskID}号桌就餐!");
                     this.rtb.AppendText(Environment.NewLine);
                     this.tb2.Text = $"还有{ts.Count}个号码在等待!";
                 }
                 Button button = SPanel1.FindName($"desk{desk.DeskID}") as Button;
                 //Button button = (Button)this.GetType().GetField($"desk{desk.DeskID}", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).GetValue(this);
                 if (desk.Status == false)
                 {
                     button.Content   = $"{desk.DeskID}号桌空";
                     button.IsEnabled = false;
                 }
                 else
                 {
                     button.Content   = $"{desk.DeskID}号桌满";
                     button.IsEnabled = true;
                 }
             }
             await Task.Delay(1000);
         }
     }));
 }
Ejemplo n.º 2
0
 private void Enter_Click(object sender, RoutedEventArgs e)
 {
     if (Regex.IsMatch(this.desknum.Text, "[0-9]+"))
     {
         int dsCount  = ds.Count;
         int dsTarget = Convert.ToInt32(this.desknum.Text);
         if (dsTarget > dsCount)
         {
             for (int i = 1; i <= dsTarget - dsCount; i++)
             {
                 if (ds.Keys.Contains(i))
                 {
                     dsTarget++;
                 }
                 else if (!ds.Keys.Contains(i))
                 {
                     Desk desk = new Desk()
                     {
                         DeskID = i,
                         Status = false,
                     };
                     ds.Add(desk.DeskID, desk);
                     Button btn = new Button()
                     {
                         Name                = $"desk{i}",
                         Content             = $"{i}号桌空",
                         Visibility          = Visibility.Visible,
                         IsEnabled           = false,
                         Height              = 30,
                         HorizontalAlignment = HorizontalAlignment.Stretch
                     };
                     btn.Click += new RoutedEventHandler(Btn_Click);
                     this.SPanel1.Children.Add(btn);
                     this.SPanel1.RegisterName(btn.Name, btn);
                 }
             }
         }
         else if (dsTarget < dsCount)
         {
             List <int> tmp = new List <int>();
             foreach (var i in ds.Keys)
             {
                 Button btn = SPanel1.FindName($"desk{i}") as Button;
                 if (btn.Content.ToString() == $"{i}号桌空")
                 {
                     this.SPanel1.UnregisterName($"desk{i}");
                     this.SPanel1.Children.Remove(btn);
                     tmp.Add(i);
                 }
             }
             foreach (var i in tmp)
             {
                 ds.Remove(i);
             }
         }
     }
 }
Ejemplo n.º 3
0
 private void UserLeft(string btnName)
 {
     //string btnName = Regex.Match(methodName, "[desk]+[0-9]+").Groups[0].ToString();
     foreach (var desk in ds.Values)
     {
         if (btnName == $"desk{ desk.DeskID}")
         {
             Button button = SPanel1.FindName($"desk{desk.DeskID}") as Button;
             //Button button = (Button)this.GetType().GetField(btnName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).GetValue(this);
             desk.Status = false;
             this.rtb.AppendText($"第{desk.DeskID}号桌顾客已离场!");
             this.rtb.AppendText(Environment.NewLine);
             button.Content   = $"{desk.DeskID}号桌空";
             button.IsEnabled = false;
         }
     }
 }