福州建站模板搭建怎么做出有品牌感的网站

张小明 2026/1/11 20:09:01
福州建站模板搭建,怎么做出有品牌感的网站,中国建设工程招标网站,一个网站两个域名百度商桥安装方法本文主要用于介绍WPF基于MVVM实现自定义分页控件的代码实现。 主要功能#xff1a; 自定义页码#xff0c;当前页/总页数, 上一页#xff0c;下一页#xff0c;返回首页#xff0c;返回最后一页#xff0c; 利用FontAwesome作为FontFamily实现icon的功能。 本代码中的Vi…本文主要用于介绍WPF基于MVVM实现自定义分页控件的代码实现。主要功能 自定义页码当前页/总页数, 上一页下一页返回首页返回最后一页 利用FontAwesome作为FontFamily实现icon的功能。本代码中的ViewModelBase的实现请参照另一篇文章WPF MVVM ViewModelBase造轮子实现类似MVVMLight的功能1. 创建PaginationControl1.1 Color BrushSolidColorBrush x:KeyHighlightBrush Color#E84315 / SolidColorBrush x:KeyDisabledForegroundBrush Color#888 /1.2 PaginationControl.xaml.cs不用更改任何代码1.3 PaginationControl.xamlUserControl x:ClassMES.UI.Views.CustomControls.PaginationControl xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:xhttp://schemas.microsoft.com/winfx/2006/xaml xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006 xmlns:dhttp://schemas.microsoft.com/expression/blend/2008 xmlns:ihttp://schemas.microsoft.com/xaml/behaviors xmlns:localclr-namespace:MES.UI.Views.CustomControls mc:Ignorabled Height45 UserControl.Resources Style x:KeypaginationTB TargetType{x:Type TextBlock} Setter PropertyFontSize Value20/ Setter PropertyFontFamily Valuepack://application:,,,/Resources/#FontAwesome/ Setter PropertyMargin Value5,15,5,10/ Setter PropertyForeground Value{StaticResource HighlightBrush}/ Setter PropertyCursor ValueHand/ Style.Triggers Trigger PropertyIsEnabled ValueTrue Setter PropertyForeground Value{StaticResource HighlightBrush}/ /Trigger Trigger PropertyIsEnabled ValueFalse Setter PropertyForeground Value{StaticResource DisabledForegroundBrush}/ /Trigger /Style.Triggers /Style /UserControl.Resources StackPanel OrientationHorizontal VerticalAlignmentCenter TextBlock TextPage Size: Margin5,15,5,10/TextBlock ComboBox x:NamePageSizeComboBox ItemsSource{Binding PageSizes} SelectedItem{Binding PageSize} Width70 VerticalAlignmentCenter HorizontalAlignmentCenter/ TextBlock Style{StaticResource paginationTB} IsEnabled{Binding EnabledPreviousButton} Text#xf100; x:NamebtnFirstPage ToolTipFirst Page i:Interaction.Triggers i:EventTrigger EventNameMouseLeftButtonDown i:InvokeCommandAction Command{Binding FirstPageCommand}/ /i:EventTrigger /i:Interaction.Triggers /TextBlock TextBlock Style{StaticResource paginationTB} IsEnabled{Binding EnabledPreviousButton} Text#xf104; x:NamebtnPrevious ToolTipPreviouse i:Interaction.Triggers i:EventTrigger EventNameMouseLeftButtonDown i:InvokeCommandAction Command{Binding PreviousPageCommand}/ /i:EventTrigger /i:Interaction.Triggers /TextBlock TextBlock NametxtCurrentPageTextBlock Text{Binding CurrentPageText} Margin5,15,5,10 VerticalAlignmentCenter / TextBlock Style{StaticResource paginationTB} IsEnabled{Binding EnabledNextButton} Text#xf105; x:NamebtnNext ToolTipNext i:Interaction.Triggers i:EventTrigger EventNameMouseLeftButtonDown i:InvokeCommandAction Command{Binding NextPageCommand}/ /i:EventTrigger /i:Interaction.Triggers /TextBlock TextBlock Style{StaticResource paginationTB} IsEnabled{Binding EnabledNextButton} Text#xf101; x:NamebtnLastPage ToolTipLast Page i:Interaction.Triggers i:EventTrigger EventNameMouseLeftButtonDown i:InvokeCommandAction Command{Binding LastPageCommand}/ /i:EventTrigger /i:Interaction.Triggers /TextBlock /StackPanel /UserControl2. 创建PaginationControlViewModel/// summary/// Pagination Control ViewModel/// /summarypublicclassPaginationControlViewModel:ViewModelBase{#regionPagination paramtersprivateint_currentPage;privateint_totalItems;privateint_pageSize1;publicintTotalItems{get_totalItems;set{_totalItemsvalue;OnPropertyChanged(nameof(TotalItems));OnPropertyChanged(nameof(TotalPages));OnPropertyChanged(nameof(CurrentPageText));SetButtonStatus();}}publicintPageSize{get_pageSize;set{_pageSizevalue;OnPropertyChanged(nameof(PageSize));OnPageChanged();}}publicintCurrentPage{get_currentPage;set{if(_currentPage!value){_currentPagevalue;OnPropertyChanged(nameof(CurrentPage));OnPageChanged();}}}publicstringCurrentPageText{get{return$Page{CurrentPage}of{TotalPages};}}publicintTotalPages(TotalItemsPageSize-1)/PageSize;privateObservableCollectionint_pageSizes;publicObservableCollectionintPageSizes{get{return_pageSizes;}set{_pageSizesvalue;OnPropertyChanged(nameof(PageSizes));}}privatebool_enabledPreviousButton;publicboolEnabledPreviousButton{get{return_enabledPreviousButton;}set{_enabledPreviousButtonvalue;OnPropertyChanged(nameof(EnabledPreviousButton));}}privatebool_enabledNextButton;publicboolEnabledNextButton{get{return_enabledNextButton;}set{_enabledNextButtonvalue;OnPropertyChanged(nameof(EnabledNextButton));}}#endregionpublicICommandFirstPageCommand{get;}publicICommandPreviousPageCommand{get;}publicICommandNextPageCommand{get;}publicICommandLastPageCommand{get;}publiceventEventHandlerPageChanged;privateboolisInitializedfalse;// avoid call OnPageChanged in initialpublicPaginationControlViewModel(){_pageSizesnewObservableCollectionint{1,20,50,100,200,300,500};CurrentPage1;// Initialize to the first pagePageSizeAgencyCRMConstants.DefaultPageSize;FirstPageCommandnewRelayCommand(_CurrentPage1);PreviousPageCommandnewRelayCommand(_{if(CurrentPage1)CurrentPage--;});NextPageCommandnewRelayCommand(_{if(CurrentPageTotalPages)CurrentPage;});LastPageCommandnewRelayCommand(_CurrentPageTotalPages);isInitializedtrue;}protectedvirtualvoidOnPageChanged(){if(isInitialized){PageChanged?.Invoke(this,EventArgs.Empty);}}privatevoidSetButtonStatus(){if(isInitialized){if(CurrentPage1){EnabledPreviousButtontrue;}else{EnabledPreviousButtonfalse;}if(CurrentPage1CurrentPageTotalPages){EnabledNextButtontrue;}else{EnabledNextButtonfalse;}}else{EnabledNextButtonfalse;EnabledPreviousButtonfalse;}}}3. 调用3.1 在CompanyListViewModel中引用PaginationControlViewModelpublicclassCompanyListViewModel:ViewModelBase,IViewModelDispose{#regionAgency.CRM API UrlsprivateconststringGetByCompanyNameAsyncapi/Company/GetByCompanyName?CompanyName{0}pageNumber{1}pageSize{2};#endregion#regionModelsprivatereadonlyIMESHttpClientService_mesHttpClientService;privateBackgroundWorker_backgroundWorker;publicPaginationControlViewModelPaginationViewModel;privatestring?_CompanyName;publicstring?CompanyName{get{return_CompanyName;}set{_CompanyNamevalue;OnPropertyChanged(nameof(CompanyName));}}privatebool_isEnableExport;publicboolIsEnableExport{get{return_isEnableExport;}set{_isEnableExportvalue;OnPropertyChanged(nameof(IsEnableExport));}}privateCompanyDto?_selectedCompany;publicCompanyDto?SelectedCompany{get{return_selectedCompany;}set{_selectedCompanyvalue;OnPropertyChanged(nameof(SelectedCompany));}}privateObservableCollectionCompanyDto_CompanyList;publicObservableCollectionCompanyDtoCompanyList{get{return_CompanyList;}set{_CompanyListvalue;OnPropertyChanged(nameof(CompanyList));}}privateintpageSizeMESConstants.DefaultPageSize;privateintcurrentPage1;#endregion#regionctorpublicCompanyListViewModel(){_mesHttpClientServiceNInjectBase.Kernel.GetIMESHttpClientService();_CompanyListnew();_backgroundWorkernewBackgroundWorker();_backgroundWorker.DoWorkBackgroundWorker_DoWork;_backgroundWorker.RunWorkerCompletedBackgroundWorker_RunWorkerCompleted;InitialParameters();}privatevoidInitialParameters(){_CompanyNamestring.Empty;PaginationViewModelnewPaginationControlViewModel();PaginationViewModel.PageSizeMESConstants.DefaultPageSize;_selectedCompanynew();PaginationInitial();}#endregion#regionICommandspublicICommand?RefreshRecordsCommand{get{returnnewDelegateCommand((){RefreshRecords();});}}publicICommand?ResetFilterCommand{get{returnnewDelegateCommand((){ResetFilterFunction();});}}#endregion#regionFunctionsprivatevoidResetFilterFunction(){InitialParameters();RefreshRecords();}publicvoidRefreshRecords(){AppEvents.Instance.StartProgressBar(this,newProgressBarDisplayEventArgs(AppConstants.ProgressBarMessages.Generic.LOADING));_backgroundWorker.RunWorkerAsync(newListstring(){CompanyName,currentPage.ToString(),pageSize.ToString()});}privatevoidBackgroundWorker_RunWorkerCompleted(object?sender,RunWorkerCompletedEventArgse){if(e.Errornull){varresulte.ResultasPagedResultDtoCompanyDto;if(result!null){int.TryParse(result.TotalCount.ToString(),outvartotalCount);PaginationViewModel.TotalItemstotalCount;CompanyListresult.Items;this.IsEnableExportCompanyList?.Count0;}else{this.IsEnableExportfalse;}}AppEvents.Instance.StopProgressBar(this);}privatevoidBackgroundWorker_DoWork(object?sender,DoWorkEventArgse){try{varparameterse.ArgumentasListstring;if(parametersnull||parameters.Count!3)return;usingvarhttpClient_mesHttpClientService.GetHttpClient();stringurlWithParametersstring.Format(GetByCompanyNameAsync,parameters[0],parameters[1],parameters[2]);varresponsehttpClient.GetAsync(urlWithParameters).Result;if(response.IsSuccessStatusCode){varjsonresponse.Content.ReadAsStringAsync().Result;varresultJsonConvert.DeserializeObjectPagedResultDtoCompanyDto(json);e.Resultresult;}}catch(Exceptionex){Log.Error(Error loading CRM users,ex);}}publicvoidDisposeRecordsAndEvents(){CompanyListnew();_backgroundWorker.DoWork-BackgroundWorker_DoWork;_backgroundWorker.RunWorkerCompleted-BackgroundWorker_RunWorkerCompleted;_backgroundWorker.Dispose();PaginationDispose();}#endregion#regionPaginationprivatevoidPaginationInitial(){PaginationViewModelnew();PaginationViewModel.PageChangedPaginationControlViewModel_PageChanged;}privatevoidPaginationDispose(){PaginationViewModel.PageChanged-PaginationControlViewModel_PageChanged;}privatevoidPaginationControlViewModel_PageChanged(object?sender,EventArgse){pageSizePaginationViewModel.PageSize;currentPagePaginationViewModel.CurrentPage;RefreshRecords();}#endregion}3.2 CompanyList.xaml中添加PaginationControlCustomControls:PaginationControl x:NamepaginationControl/CustomControls:PaginationControl3.3 CompanyList.xaml.cs中为PaginationControl指定DataContextprivatevoidUserControl_Loaded(objectsender,System.Windows.RoutedEventArgse){paginationControl.DataContextViewModel.PaginationViewModel;ViewModel.RefreshRecords();}4. 最终实现效果
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

可以做网站的公司有哪些wap 手机网站建设

Windows多人远程桌面终极解决方案:RDP Wrapper完全指南 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 你是否曾经因为Windows家庭版无法同时支持多个用户远程登录而感到束手无策?当团队成员…

张小明 2026/1/11 10:46:54 网站建设

业网站建设wordpress加黑字体

文章目录前言掌握Java网页抓取:技术与示例Java抓取的先决条件Java网页抓取库概述JsoupHtmlUnitSeleniumApache HttpClient/HttpComponentsPlaywright分步指南:使用Java进行基本网页抓取添加依赖项获取页面使用Jsoup解析结果提取字段并映射到对象导出到JS…

张小明 2026/1/7 4:01:51 网站建设

公司注册网站系统云游戏主机

软件开发中的迭代设计、Spike 解决方案与性能优化 在软件开发领域,迭代设计、Spike 解决方案以及性能优化是至关重要的环节。下面将详细阐述这些方面的内容,为程序员和测试人员提供有价值的参考。 迭代设计 迭代设计是一种强大、高效且经济的设计方法。在软件开发中,直接采…

张小明 2026/1/11 1:20:52 网站建设

在百度做网站哪个网站可以做付费推广

零日攻击是利用零日漏洞(0day)对系统或软件应用发动的网络攻击,近年来,零日攻击威胁在日益增长且难以防范,零日攻击已成为企业网络信息安全面临的最严峻的威胁之一。 What is a zero-day attack? 零日攻击…

张小明 2026/1/9 11:57:59 网站建设

网站首页被k 不恢复办公室装修费计入什么费用

FF14钓鱼计时器完整指南:从零开始掌握智能钓鱼技巧 【免费下载链接】Fishers-Intuition 渔人的直感,最终幻想14钓鱼计时器 项目地址: https://gitcode.com/gh_mirrors/fi/Fishers-Intuition 渔人的直感是一款专为《最终幻想14》设计的智能钓鱼辅助…

张小明 2026/1/11 19:41:10 网站建设