using DM_Weight.Finger; using DM_Weight.Port; using Prism.Commands; using Prism.Events; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace DM_Weight.ViewModels { public class BeforeLoginViewModel : BindableBase, IRegionMemberLifetime, IConfirmNavigationRequest { public bool KeepAlive => false; IRegionManager _regionManager; IEventAggregator _eventAggregator; public BeforeLoginViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, PortUtil portUtil) { _regionManager = regionManager; _eventAggregator = eventAggregator; } private NavigationParameters keys = new NavigationParameters(); /// /// 值班柜柜登录 /// public DelegateCommand DutyCommand { get => new DelegateCommand(() => { //_loginWindowViewModel.SingleLogin = true; //_loginWindowViewModel.MultiLogin = false; keys.Add("SingleLogin", true); App.SingleModel = true; _regionManager.RequestNavigate("MainRegion", "LoginWindow",keys); }); } /// /// 周转柜登录 /// public DelegateCommand OtherCommand { get => new DelegateCommand(() => { //_loginWindowViewModel.SingleLogin = false; //_loginWindowViewModel.MultiLogin = true; keys.Add("SingleLogin", false); App.SingleModel = false; _regionManager.RequestNavigate("MainRegion", "LoginWindow", keys); }); } public void ConfirmNavigationRequest(NavigationContext navigationContext, Action continuationCallback) { continuationCallback(true); } public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } public void OnNavigatedTo(NavigationContext navigationContext) { } //手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题 public string ReadAppSetting(string key) { string xPath = $"/configuration/appSettings//add[@key='{key}']"; XmlDocument doc = new XmlDocument(); string exeFileName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; doc.Load(exeFileName + ".dll.config"); XmlNode node = doc.SelectSingleNode(xPath); return node.Attributes["value"].Value.ToString(); } } }