自定義控制項的設計

来源:http://www.cnblogs.com/weloveamber/archive/2017/03/25/6617249.html
-Advertisement-
Play Games

項目中的代碼洋洋灑灑寫了很多,最近回過頭來看看,能精簡的地方太多了。WPF MVVM是個非常實用的模式。但前提是控制項需要支持。等等,還有不支持binding的控制項麽?基礎的控制項當然不在此列,然而實踐中常常會遇到需要組合的控制項,將一組控制項放在一起完成一個基本功能。還有控制項需要根據不同的情況改變顯示形式 ...


項目中的代碼洋洋灑灑寫了很多,最近回過頭來看看,能精簡的地方太多了。WPF MVVM是個非常實用的模式。但前提是控制項需要支持。等等,還有不支持binding的控制項麽?基礎的控制項當然不在此列,然而實踐中常常會遇到需要組合的控制項,將一組控制項放在一起完成一個基本功能。還有控制項需要根據不同的情況改變顯示形式。當然這些需求通過style,template,converter都可以實現,可實踐的過程中我覺得控制項的形式似乎更為的有效。如果開發人員的思考重點都放在了業務邏輯上,WPF相關的代碼總是寫的有些雜亂。換一種思路,如果做出來的WPF控制項還具有復用性,項目的高內聚,低耦合的目標是不是更容易實現呢?雖然時時考慮復用並不是一種很好的實踐,反過來絲毫不考慮復用更不可取。

在設計自定義空間中依賴屬性,路由事件,簡單寫寫似乎很簡單,可以具體場景的應用總是遇到很多問題。有時間還需要多做總結。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 官方文檔:http://www.mybatis.org/mybatis-3/getting-started.html 安裝 要使用 MyBatis, 只需將 mybatis-x.x.x.jar 文件置於 classpath 中即可。 如果使用 Maven 來構建項目,則需將下麵的 dependenc ...
  • 一、什麼是主鍵、外鍵: 關係型資料庫中的一條記錄中有若幹個屬性,若其中某一個屬性組(註意是組)能唯一標識一條記錄,該屬性組就可以成為一個主鍵比如 : 學生表(學號,姓名,性別,班級) 其中每個學生的學號是唯一的,學號就是一個主鍵 用戶表(用戶名、密碼、登錄級別) 其中用戶名是唯一的, 用戶名就是一個 ...
  • 程式中的變數名、常量名、類名、方法名,都叫做標識符。C#有一套標識符的命名規則,如果命名時不遵守規則,就會出錯。這套規則簡單說有下麵三條: ①標識符只能由英文字母、數字和下劃線組成,不能包含空格和其他字元。 錯誤的標識符聲明: ②變數名不能用數字開頭。 錯誤的標識符聲明: ③不能用關鍵字當變數名。 ...
  • 跟著師父一直在做codefirst的開發,最近有個新需求,就是需要人家的資料庫,然後來開發,現在出現問題了。整理如下 目前有個現成的我們之前的codefirst的工程代碼,我記得師父說過,根據資料庫生成model的做法是: 在指定文件夾,右鍵添加-->新建項--> 這裡先選擇數據,然後是ADO.NE ...
  • 首先需要明白一個原理: 游戲畫面(動畫)是由一幀幀的圖片載入完成的,並且是連續的。也就是說,在一個時間節點上,一定存在一幀圖片。不同的是每幀的圖片存在的時間不同,如果每幀圖片存在的時間比較短,也即單位時間內幀數比較多的話(幀率大),畫面越流暢。下麵連續的表示圖片的流動,圖片的寬度表示該圖片存在的時間 ...
  • using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Runtim ...
  • 測試環境 操作系統:Windows8.1 開發工具:Unity5.5.2 1、新建一個測試項目,觀測引用System.Xml與Mono.Xml解析文件正確性,與打包後APK體積大小。 2、Mono.Xml 用例 編譯日誌可以觀測到沒有引用System.Xml.dll(該文件約1mb) 3、Syste ...
  • 1.VisualStudio2017設置版權 a 在團隊開發或者公司開發中,我們一般都喜歡給自己所創建的類或者介面以及其它模板設置版權說明,但是每個類一個一個的去加又是非常的費勁,所以一般情況下我們都是設置模板來實現它,當您在VS中創建類或者介面等的時候自動將這些註釋添加到您所在的類或者介面中。 b ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...