using FLY.FilmCasting.AutoDie.IService; using GalaSoft.MvvmLight.Command; using MultiLayout.UiModule; using System; using System.ComponentModel; using System.Windows; using System.Windows.Controls; using System.Windows.Threading; using Unity; namespace FLY.FilmCasting.AutoDie.UI.Client.UiModule { /// <summary> /// Page_DynArea.xaml 的交互逻辑 /// </summary> public partial class DynAreaAutoDie : UserControl { DynAreaAutoDieVm airRingVm; public DynAreaAutoDie() { InitializeComponent(); } [InjectionMethod] public void Init( IUnityContainer container ) { //获取设备 airRingVm = container.Resolve<DynAreaAutoDieVm>(); grid_viewModel.DataContext = airRingVm; } } public class DynAreaAutoDieVm : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public double CurrR { get; set; } public DateTime LastChangedTime { get; set; } public string Msg { get; set; } //IBlowingService blowingService; IHeatBufService heatBufService; IUnityContainer container; IFeedbackHeatService feedbackHeatService; IHeatCellService heatCellService; DispatcherTimer timer; public DynAreaAutoDieVm() { } [InjectionMethod] public void Init( IUnityContainer container, IFeedbackHeatService feedbackHeatService, IHeatBufService heatBufService, IHeatCellService heatCellService //IBlowingService blowingService ) { this.heatBufService = heatBufService; this.container = container; this.feedbackHeatService = feedbackHeatService; this.heatCellService = heatCellService; //this.blowingService = blowingService; //Misc.BindingOperations.SetBinding(blowingService, nameof(blowingService.OrgBoltNo), this, nameof(OrgBoltNo)); Misc.BindingOperations.SetBinding(heatBufService, nameof(heatBufService.CurrR), this, nameof(CurrR)); Misc.BindingOperations.SetBinding(heatCellService, nameof(heatCellService.LastHeatsChangedTime), this, nameof(LastChangedTime)); UpdateMsg(); heatBufService.PropertyChanged += HeatBufService_PropertyChanged; } private void HeatBufService_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(heatBufService.Stability)) { UpdateMsg(); } } void UpdateMsg() { StableConverter conv = new StableConverter(); string msg = (string)conv.Convert(heatBufService.Stability, typeof(Common.STABILITY), null, null); Msg = msg; } } public class DynAreaAutoDieVmUt : DynAreaAutoDieVm { } public class UiModule2_DynAreaAutoDie : IUiModule2 { /// <summary> /// 控件标题 /// 它的值取决于culture /// </summary> public string Title => "自动模头.状态"; public ComponentType Type => ComponentType.DynArea; public bool IsUnique => true; /// <summary> /// 控件 /// 创建时,需要给它唯一ID,让加载自己的数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public FrameworkElement GetComponent(int id, IUnityContainer container) { return container.Resolve<DynAreaAutoDie>(); } /// <summary> /// 控件缩略图,用于编辑界面时,大致看看 /// 创建时,需要给它唯一ID,让加载自己的数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public FrameworkElement GetThumbnail() { return new System.Windows.Controls.Grid(); } /// <summary> /// 给出全部控件ID, 控件自行删除没有的参数 /// </summary> /// <param name="IDs"></param> public void MatchParam(int[] IDs) { } } }