一起搭WPF架构之界面绑定显示
1 前言
之前的许多介绍,已经完成界面搭建的熟悉内容,现在在搭建的基础上完成简单的界面切换。
2 定义文件
我们在已有项目中需要定义两个CS文件,在这个两个CS文件中,我们可以在MainModel.cs
中定义对应的属性,然后在MainViewModel.cs
中对MainModel
类使用,再同步更新到对应的UI界面中,从而实现MVVM
模式。
3 定义属性
在MainModel.cs
中定义属性。UIElement
是一个非常基础和核心的类,它是几乎所有可视化元素的基类。UIElement
类提供了许多用于处理用户输入、布局、渲染和其他UI功能的属性和方法。
我们还是使用到了NotifyChanged
方法,设置新值时调用 NotifyChanged
方法,可用于后台数据更新时刷新界面数据。
class MainModel
{
private UIElement _mainContent;
public UIElement MainContent
{
get { return _mainContent; }
set { _mainContent = value; this.NotifyChanged(); }
}
}
4 控制器使用
我们定义MainModel
类,用这个类的属性获取对应的UI元素名称,然后方法内部使用 Type.GetType(name)
获取相应的 Type 对象,然后使用 Activator.CreateInstance(type)
创建这个类型的实例,最终达到调用显示的效果。
public MainModel MainModel { get; set; } = new MainModel();
private void NavPage(string name)
{
Type type = Type.GetType(name);
this.MainModel.MainContent = (System.Windows.UIElement)Activator.CreateInstance(type);
}
public MainViewModel()
{
this.NavPage("InterfacialDesign.Views.DataModelViews");
}
5 界面内容绑定
这里就是最简单的界面数据绑定,我们在后台使用MainModel
类,在控制器对MainModel
类的属性进行赋值,更新界面元素。
<ContentControl Content="{Binding MainModel.MainContent}"/>
ContentControl
——一个可以显示单个对象的内容的控件,它非常适合用于绑定到可能改变的UIElement
。
6 界面效果
第一个界面是Mainwindow
界面,没有按钮。
第二个是DataModelViews
界面,添加一个按钮。
第三个是最终效果。
总结
本文仅仅简单介绍了界面绑定显示的方法,但是默认了界面显示,后续需要根据按钮进行界面切换。
标签:界面,定义,UIElement,绑定,MainModel,架构,WPF,属性 From: https://blog.csdn.net/arriettyandray/article/details/140602961