using NEIntelligentControl2.Models.Matrix; using NEIntelligentControl2.Models.Station; using NEIntelligentControl2.Service.Windturbine; using NEIntelligentControl2.Views.Matrix; 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; namespace NEIntelligentControl2.Pages.Matrix { /// /// 全部矩阵页面 /// public partial class PageMatrixAll : Page, IStationInfo { private bool _IsWindturbine; private bool _IsLoaged; public StationInfo StationInfo { get; set; } private CacheManager _CacheManager; public PageMatrixAll(CacheManager cm) { InitializeComponent(); _CacheManager = cm; } public void UpdateData(object data) { Dispatcher.Invoke(() => { foreach (var v in _SPMain.Children) { var si = v as IStationInfo; if (si == null) continue; si.UpdateData(data); } }); } private void Page_Loaded(object sender, RoutedEventArgs e) { if (_IsLoaged || StationInfo == null) return; List infos = StationInfo.Tag as List; if (infos == null) return; _SPMain.Children.Clear(); _IsWindturbine = StationInfo.Id == "WIND_ALL"; if (_IsWindturbine) { infos = infos.Where(i => i.Type == StationType.Wind).ToList(); foreach (var v in infos) { _SPMain.Children.Add(new WindStationBlock(_CacheManager) { StationInfo = v }); } } else { infos = infos.Where(i => i.Type == StationType.PV).ToList(); foreach(var v in infos) { _SPMain.Children.Add(new PVStationBlock() { StationInfo = v }); } } _IsLoaged = true; } } }