当前位置: 首页 > news >正文

云岭先锋网站是哪家公司做的上海建设咨询有限公司

云岭先锋网站是哪家公司做的,上海建设咨询有限公司,帝国cms官方网站,成都网站建设:文章目录 前言一、问题描述二、解决方案三、软件开发#xff08;源码#xff09;3.1 创建模型3.2 视图界面3.3 控制器逻辑层 四、项目展示![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/05795ee1c24c49129b822b530ef58302.png) 前言 .NET 多平台应用 UI (.NET MA… 文章目录 前言一、问题描述二、解决方案三、软件开发源码3.1 创建模型3.2 视图界面3.3 控制器逻辑层 四、项目展示![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/05795ee1c24c49129b822b530ef58302.png) 前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架用于使用 C# 和 XAML 创建本机移动和桌面应用。 使用 .NET MAUI可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是一款开放源代码应用是 Xamarin.Forms 的进化版从移动场景扩展到了桌面场景并从头重新生成了 UI 控件以提高性能和可扩展性。 如果以前使用过 Xamarin.Forms 来生成跨平台用户界面那么你会注意到它与 .NET MAUI 有许多相似之处。 但也有一些差异。 通过使用 .NET MAUI可使用单个项目创建多平台应用但如果有必要可以添加特定于平台的源代码和资源。 .NET MAUI 的主要目的之一是使你能够在单个代码库中实现尽可能多的应用逻辑和 UI 布局。 一、问题描述 MVVM模式Model-View-ViewModel架构模式是将View和ViewModel关联起来通过双向数据绑定实现View和ViewModel的同步更新。View负责展示数据和用户交互ViewModel负责处理数据和业务逻辑Model负责存储数据。MVVM的优点是能够降低View和ViewModel之间的耦合使得代码更加可维护和可测试。 .NET MAUI是如何进行将View和ViewModel双向绑定的呢 二、解决方案 1、视图–数据模型绑定定义ViewModels视图层通过Binding属性绑定ViewModels 2、数据模型–视图绑定ViewModels属性发生改变需要通知View进行更新通知采用观察者模式更新View采用委托Invoke。 听起来很复杂对不对其实很简单。 三、软件开发源码 3.1 创建模型 文件名MO1002AddViewModel.cs 位置ViewModels 备注集合一定要定义成 ObservableCollection不要使用List否则无法实现MVVMObservableCollection实现INotifyCollectionChanged, INotifyPropertyChanged。 using App.Mes.Core.Entities; using App.Mes.Core.Operation.Services.Mobile; using Newtonsoft.Json; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices;namespace GlueNet.Mobile.ViewModels {public class MO1002AddViewModel : INotifyPropertyChanged{private string _mtrlTypeValue; // 物料类型private string _houseValue; // 线边库private string _bnPlantValue; // 业务工厂private string _reasonValue; // 原因public ObservableCollectionKeyValuePairstring, string MtrlTypeOptions { get; set; } new ObservableCollectionKeyValuePairstring, string();public ObservableCollectionKeyValuePairstring, string HouseOptions { get; set; } new ObservableCollectionKeyValuePairstring, string();public ObservableCollectionKeyValuePairstring, string BnPlantOptions { get; set; } new ObservableCollectionKeyValuePairstring, string();public ObservableCollectionKeyValuePairstring, string ReasonOptions { get; set; } new ObservableCollectionKeyValuePairstring, string();public KeyValuePairstring, string MtrlTypeValue{get new KeyValuePairstring, string(MtrlTypeOptions.FirstOrDefault(x x.Value _mtrlTypeValue).Key, _mtrlTypeValue);set{if (_mtrlTypeValue ! value.Value){_mtrlTypeValue value.Value;OnPropertyChanged();}}}public KeyValuePairstring, string HouseValue{get new KeyValuePairstring, string(HouseOptions.FirstOrDefault(x x.Value _houseValue).Key, _houseValue);set{if (_houseValue ! value.Value){_houseValue value.Value;OnPropertyChanged();}}}public KeyValuePairstring, string BnPlantValue{get new KeyValuePairstring, string(BnPlantOptions.FirstOrDefault(x x.Value _bnPlantValue).Key, _bnPlantValue);set{if (_bnPlantValue ! value.Value){_bnPlantValue value.Value;OnPropertyChanged();}}}public KeyValuePairstring, string ReasonValue{get new KeyValuePairstring, string(ReasonOptions.FirstOrDefault(x x.Value _reasonValue).Key, _reasonValue);set{if (_reasonValue ! value.Value){_reasonValue value.Value;OnPropertyChanged();}}}/// summary/// 构造函数/// /summarypublic MO1002AddViewModel(){InitializeOptions();}private void InitializeOptions(){//物料类型初始化MtrlTypeOptions.Add(new KeyValuePairstring, string(22, 纸垛));MtrlTypeOptions.Add(new KeyValuePairstring, string(23, 纸卷));MtrlTypeValue MtrlTypeOptions.FirstOrDefault();//线边库初始化string str_house GycMobileService.Proxy.GetHouseByUser();var houseList JsonConvert.DeserializeObjectListTax0010(str_house);foreach (var item in houseList){HouseOptions.Add(new KeyValuePairstring, string(item.CStoreHouse, item.CStoreHouseNm));}HouseValue HouseOptions.FirstOrDefault();//业务工厂初始化string str_BnPlant GycMobileService.Proxy.GetBsnsPlant();var BnPlantList JsonConvert.DeserializeObjectListTax0002(str_BnPlant);foreach (var item in BnPlantList){BnPlantOptions.Add(new KeyValuePairstring, string(item.CNewBnPlantCd, item.CNewBnPlantNm));}BnPlantValue BnPlantOptions.FirstOrDefault();//退库原因string str_Reason GycMobileService.Proxy.GetReason();var ReasonList JsonConvert.DeserializeObjectListKeyValuePairstring, string(str_Reason);foreach (var item in ReasonList){ReasonOptions.Add(new KeyValuePairstring, string(item.Key, item.Value));}ReasonValue ReasonOptions.FirstOrDefault();}/// summary/// MO1002Page页面用根据key获取value/// 备注此方法不推荐gyc建议服务端【联表查询】返回合适有value的数据对象现在服务端ORM难以改造故而使用此方案。/// /summarypublic string GetMtrlTypeValueByKey(string key){var house MtrlTypeOptions.FirstOrDefault(x x.Key key);return house.Value;}public string GetHouseValueByKey(string key){var house HouseOptions.FirstOrDefault(x x.Key key);return house.Value;}public string GetBnPlantValueByKey(string key){var house BnPlantOptions.FirstOrDefault(x x.Key key);return house.Value;}public string GetReasonValueByKey(string key){var house ReasonOptions.FirstOrDefault(x x.Key key);return house.Value;}public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName] string propertyName null){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}} }3.2 视图界面 文件名MO1002AddPage.xaml 位置Pages 备注第二种绑定形势也可以在在逻辑层绑定。 ContentPage.BindingContext local:MO1002AddViewModel / /ContentPage.BindingContext ?xml version1.0 encodingutf-8 ? ContentPage xmlnshttp://schemas.microsoft.com/dotnet/2021/mauixmlns:xhttp://schemas.microsoft.com/winfx/2009/xamlx:ClassGlueNet.Mobile.Pages.MO1002AddPagexmlns:localclr-namespace:GlueNet.Mobile.ViewModelsTitle件次退料-制单ContentPage.BindingContextlocal:MO1002AddViewModel //ContentPage.BindingContextVerticalStackLayout StackLayout Margin10,20,10,20!--件次退料 制单--Frame BorderColorLightGray CornerRadius5 Padding10 Margin5Grid ColumnDefinitions*,* RowDefinitions*,*,*,*Label Text物料类型 VerticalOptionsCenter/Picker Title下拉框 Grid.Column1 ItemsSource{Binding MtrlTypeOptions} SelectedItem{Binding MtrlTypeValue} ItemDisplayBinding{Binding Value}/Label Text线边库 Grid.Row1 VerticalOptionsCenter/Picker Title下拉框 Grid.Row1 Grid.Column1 ItemsSource{Binding HouseOptions} SelectedItem{Binding HouseValue} ItemDisplayBinding{Binding Value}/Label Text业务工厂 Grid.Row2 VerticalOptionsCenter/Picker Title下拉框 Grid.Row2 Grid.Column1 ItemsSource{Binding BnPlantOptions} SelectedItem{Binding BnPlantValue} ItemDisplayBinding{Binding Value}/Label Text退库原因 Grid.Row3 VerticalOptionsCenter/Picker Title下拉框 Grid.Row3 Grid.Column1 ItemsSource{Binding ReasonOptions} SelectedItem{Binding ReasonValue} ItemDisplayBinding{Binding Value}//Grid/Frame/StackLayout!--件次退料 制单--Grid ColumnDefinitions*,*,*Button Grid.Column0 HorizontalOptionsCenter VerticalOptionsCenter Text确认 FontSize15 BackgroundColorLightBlue ClickedOnAddClicked/Button Grid.Column2 HorizontalOptionsCenter VerticalOptionsCenter Text取消 FontSize15 BackgroundColorOrange ClickedOnCanelClicked//Grid/VerticalStackLayout /ContentPage3.3 控制器逻辑层 逻辑层代码没有全在ViewModel构造函数中进行了数据初始化。 逻辑如果要使用可以使用如下方法 var viewModel BindingContext as MO1002AddViewModel;四、项目展示
http://www.w-s-a.com/news/185746/

相关文章:

  • 怎么做网址导航网站沈阳高端做网站建设
  • 棋牌网站开发需要多少钱整网站代码 带数据 免费 下载
  • 网站建设 sql 模版猎头用什么网站做单
  • 河北保定建设工程信息网站wordpress 远程缓存
  • 手机网站开发之列表开发win7网站开发教程
  • 楚雄市住房和城乡建设局网站廊坊企业网站建设
  • 东莞规划局官方网站wordpress添加文章页不显示图片
  • 做企业网站要哪些人员百度商城网站建设
  • c语言软件开和网站开发区别多产品的网站怎么做seo
  • 收益网站制作移动互联网应用的使用情况表格
  • 专业的手机网站建设公司哪家好同城信息网站建设
  • 参与做网站的收获国外网站服务器建设
  • 西宁网站建设报价cu君博规范网站kv如何做
  • 毕业室内设计代做网站广东建设监理协会网站个人账号
  • 百度推广点击收费标准自己如何做网站优化
  • 安徽省建设监理网站广州澄网站建设公司
  • 做简历用什么网站俄罗斯搜索引擎浏览器官网入口
  • dw里响应式网站怎么做制作网站需要多少时间
  • 网站如何做双链路示范学校建设专题网站
  • 网站开发北京影视网站seo描述
  • 高端网站定制建设公司哪家好企业网络推广技巧
  • 建设公司网站的内容建筑设计图片
  • 用ps怎么做网站的效果图互联网营销师报名入口官网
  • 网站的后端怎么开发网站 白名单
  • 济宁中小企业网站建设wordpress爆破工具
  • 零基础网站建设视频商城系统平台有哪些
  • 那个网站做百科好过wordpress删除
  • 优化网站排名怎么制作网站建设数据库模板
  • 哪个建站软件比较好带论坛都有什么公司需要网站建设
  • 同城便民网站开发自己免费怎么制作网站吗