using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using XImagingXhandler.XDAL; using XCommon.Log; using System.Collections.ObjectModel; namespace XHandler.View.MethodProperty { /// /// WaitforProperty.xaml 的交互逻辑 /// public partial class WaitforProperty : UserControl,ITimerObserver { public MethodWaitFor methodWaitFor { get; set; } public MethodWaitFor currmethodWaitFor = null; public MethodEx method = null; #region 全局属性变量 string isrun = ""; string status = ""; string name = ""; string label = ""; string duringTimeText = ""; string duringTimeStrIndex = ""; bool endTimer = false; int mark = 0; #endregion public WaitforProperty() { InitializeComponent(); } #region timer变更后,更新节点内的Timer绑定 /// /// timer变更后,更新节点内的Timer绑定 /// /// 节点内的Timer管理对象 public void ReceiveAndUpdate(List duringTimerList) { cbTimerList.ItemsSource = duringTimerList; if (methodWaitFor.duringTimeTextStrIndex == "") { if (duringTimerList.Count > 0) { cbTimerList.SelectedIndex = 0; } } else { if (duringTimerList.Count > 0) { var containsValue = (cbTimerList.ItemsSource as List).FirstOrDefault(x=>x.dropdown_id.Equals(methodWaitFor.duringTimeTextStrIndex)); if (containsValue != null) { cbTimerList.SelectedValue = methodWaitFor.duringTimeTextStrIndex; } } } } #endregion public WaitforProperty(MethodEx method, List duringTimerList) { InitializeComponent(); mark = 0; methodWaitFor = new MethodWaitFor(); methodWaitFor.name = method.method_name; methodWaitFor.label = method.method_name; methodWaitFor.status = (method.isEnabled == true ? "enable" : "disable"); methodWaitFor.isrun = "disable"; methodWaitFor.strIndex = method.strIndex; cbTimerList.ItemsSource = duringTimerList; this.method = method; if (method.tag != null) { methodWaitFor = (MethodWaitFor)method.tag; currmethodWaitFor = methodWaitFor; isrun = methodWaitFor.isrun; status = methodWaitFor.status; name = methodWaitFor.name; label = methodWaitFor.label; duringTimeText = methodWaitFor.duringTimeText; duringTimeStrIndex = methodWaitFor.duringTimeTextStrIndex; endTimer = methodWaitFor.enableEndWaitfor = true; } this.DataContext = methodWaitFor; } private void cbTimerList_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (methodWaitFor != null) { var currentItem = cbTimerList.SelectedItem as DropdownName; if(currentItem == null) { return; } methodWaitFor.duringTimeText = (currentItem).dropdown_name; methodWaitFor.duringTimeTextStrIndex = cbTimerList.SelectedValue.ToString(); if (this.method != null) { this.method.method_Tipcontent = string.Format("{0}", methodWaitFor.duringTimeText.ToString()); } } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void cbxEndTimer_Click(object sender, RoutedEventArgs e) { try { if (methodWaitFor != null) { methodWaitFor.enableEndWaitfor = (bool)cbxEndTimer.IsChecked; } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e) { try { if (methodWaitFor != null) { methodWaitFor.name = tbxCommandName.Text; } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } private void UserControl_Loaded(object sender, RoutedEventArgs e) { mark += 1; try { if (mark > 1) { return; } if (!string.IsNullOrEmpty(duringTimeText)) { tbxCommandName.Text = name; cbTimerList.Text = duringTimeText; cbxEndTimer.IsChecked = endTimer; if (currmethodWaitFor != null) { methodWaitFor = currmethodWaitFor; } } else { cbTimerList.SelectedIndex = -1; if (currmethodWaitFor != null) { methodWaitFor = currmethodWaitFor; } } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } } }