一、主页面数据显示及按钮功能实现
注:下面使用 Microsoft Visual Studio2022,部分知识点引自导师教学,完整《商品管理系统》在我的资源免费下载。
1.数据加载方法
(1)、页面表格数据加载和条件查询共用一个方法,方法体里面包含下拉框数据的获取方法和数据查询的方法,该方法需要页面的扩展实体“listProductVo”来绑定表格。
(2)、绑定表格使用页面网格数据加载的实体“listProductVo”,该属性还需要绑定Vo类,Vo类用于存放一些扩展性的数据库内容,或数据及按钮的显示和隐藏功能方法的类,现在在Vo里新建“ProductVo”类,该类存放扩展类方法。
2.双向数据绑定
(1)、就是在界面的操作对数据模型的修改能实时反映到数据;而数据的变更能实时展 现到界面。即视图数据模型(ViewModel)和视图(View)之间的双向绑定和触发。
(2)、View中文本框绑定内容如下:{Binding UserInfo.UserName,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay},这里多了两个属性,一个是UpdateSourceTrigger,一个是Mode属性。
(3)、UpdateSourceTrigger的作用是 当做何种改变的时候通知数据源我们做了改变。
(4)、想把View上的变化同步到ViewModel(Target => Source),所以使用OneWayToSource、TwoWay、Default或者不写都可以。 严谨点应该使用OneWayToSource。因为是文本框,属于可以编辑控件,所以 Default指向的是 TwoWay。 下面还有一个TextBlock,仅仅用于显示的,所以不需要目标对源的修改,无需指定就默认是 OneWay,当源改变的时候,会通知它进行修改。
(5)、双向绑定数据,使用Mode属性里的TwoWay双向绑定,即可编辑改变,用于监测页面数据修改带来的数据呈现改变,属性引用到页面表格数据绑定事件命令“ProductEntity”。
3.数据库数据查询
(1)、try/catch捕捉错误,首先查询数据库数据,使用SQL Server数据库查询语句查询三个表的连接,通过主键id和外键id进行表连接,View页面需要什么数据就新增什么数据。
(2)、条件查询,页面输入框查询数据通过条件查询,如模糊查询等等,int类型数据查询直接判断是否小于0,字符串类型则通过“IsNullOrEmpty”关键字,作用指示指定的字符串是null还是string.Empty字符串。
4.实现点击按钮打开新窗口
(1)、在View文件夹新建一个窗口,该窗口为“商品新增”窗口,用于数据新增。
(2)、最终效果为以下,窗口包含图片的上传、联表查询的下拉框、输入框、勾选框、日期选择,并且需要实现所有新增数据的保存和下拉框、输入框的内容重置操作。
(3)、在ViewModel文件夹中新建新增窗口的后台控制类,该类用于存放实现新增窗口数据保存操作的方法。
(3)、打开新增窗口,首先实例化新增窗口,ViewModel传值(新的实体,新增标志true,委.托与事件(刷新数据)),使用“DataContext”关键字获取或设置元素参与数据绑定时的数据上下文绑定Viewdoel的新增窗口的后台,绑定新的实体,即新增窗口共用的实体“CurrentProductEntity”还有新增的标志“FlAdd”及事件“RefreshEvent”。