using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using ZGR.Databoard.Base;
using ZGR.Databoard.Base.Converters;
namespace ZGR.Databoard.ViewModels
{
public class MainViewModel : NotifyBase
{
private object _pageContent;
public object PageContent
{
get { return _pageContent; }
set { SetProperty<object>(ref _pageContent, value); }
}
public ICommand ShowPageCommand { get; set; }
public MainViewModel()
{
ShowPageCommand = new Command(ShowPage);
ShowPage("ProduceView");
}
private void ShowPage(object? pageName)
{
// 切换
if (pageName == null) return;
if (PageContent != null && PageContent.GetType().Name == pageName.ToString()) return;
// 根据传递的子页面名称创建一个对应的类型
// Zhaoxi.Databoard.Views.SubViews. ProduceView
Type type = Assembly.GetExecutingAssembly().GetType($"ZGR.Databoard.Views.SubViews.{pageName}");
// 根据创建的类型,实例化对象
PageContent = Activator.CreateInstance(type);
}
}
}
wpf 通过反射获取view 对界面进行更新
最新推荐文章于 2024-09-30 10:10:26 发布