for (i = 0; i
if (string.Equals(DataList[i].Header, header))
fm.Source = new Uri(url, UriKind.Relative);
DataList.Add(new TabControlModel
TabSelectedIndex = DataList.ToArray().Length - 1;
二、关闭tab
-
-
-
-
public RelayCommand
-
-
new RelayCommand
-
-
public void CloseTab(Button btn)
-
-
TabItem tbc = FindParentTabControl(btn);
-
foreach (TabControlModel item in DataList)
-
-
if (item.Equals(tbc.Content))
-
-
-
-
-
-
-
-
-
-
-
-
-
private TabItem FindParentTabControl(DependencyObject reference)
-
-
DependencyObject dObj = VisualTreeHelper.GetParent(reference);
-
-
-
if (dObj.GetType() == typeof(TabItem))
-
-
-
return FindParentTabControl(dObj);
-
三、刷新
viewmodel和ViewModelLocator增加时间参数传递
-
public PIndexViewModel(string dateTime)
-
-
MenuList = GetMenuList();
-
-
DataList = GetTabControlDataList();
-
-
//接收其他页面传递的消息,第二个参数为消息key,控制接收对象
-
Messenger.Default.Register(this, "AddTab", ReceiveInfo);
-
-
-
timer = new DispatcherTimer();
-
timer.Interval = TimeSpan.FromSeconds(1);
-
timer.Tick += new EventHandler(TimerTick);
-
-
-
SimpleIoc.Default.Register(() => new PIndexViewModel(DateTime.Now.ToString("HH:mm:ss")));
-
-
public PIndexViewModel PIView
-
-
-
-
return ServiceLocator.Current.GetInstance
(DateTime.Now.ToString("HH:mm:ss"));
-
-
四、传参
WPF程序是客户端程序,也就是说每个用户在自己的机器上启动的WPF程序,这些程序是互相独立的,因此不会出现多个用户同时访问的问题。
表单传值和querystring[]传值的方法是因为ASP.NET背后的HTTP协议是无状态协议,因此需要在不同的页面之间(因为Web服务器不会记住各页面的状态)传递信息。 而WPF程序里面的各个page都是运行在同一个进程空间内,共享同一块内存,所以用Application.Current.Properties就可以了。
-
private void Jt(string param)
-
-
-
Application.Current.Properties["pjt"] = param;
-
SendInfo = "{ \"header\":\"测试\" , \"url\":\"/Pages/PJt.xaml\" }";
-
//消息传递给PindexModel接收,打开新的页面,第二个参数为消息key,控制接收对象
-
Messenger.Default.Send(SendInfo, "AddTab");
-
-
-
public PJtViewModel(string dateTime)
-
-
string param=(string)Application.Current.Properties["pjt"];
-
Model = GetXfInfo(param);
-
-
-
//接收其他页面传递的消息,第二个参数为消息key,控制接收对象
-
Messenger.Default.Register(this, "Xfpc_xtxfsx", ReceiveXfpcXtxfsx);
-
Messenger.Default.Register(this, "Xfpc_sqyy", ReceiveXfpcSqyy);
-
Messenger.Default.Register(this, "Xfpc_ccxf", ReceiveXfpcCcxf);
-
-
-
-
Messenger.Default.Registerstring[]>(this, MsgTypes.列表信息控制_Callback, res =>
-
-
-
-
-
-
-
-
-
WPF TabControl Page 新增、关闭、传参、刷新
标签:reac for 因此 tac 命令 date 服务器 comment timer
原文地址:https://www.cnblogs.com/lonelyxmas/p/12208817.html