WPF-Prism學習筆記之 “導航功能和依賴注入“

新建空白模板(Prism)

新建好后會有自動創建ViewModels和Views

在"MainWindow.xaml"文件里面標題去綁定了一個屬性"Title",而"MainWindowViewModel.cs"里面繼承一個非常重要的"BindbleBase"(prism框架里面非常重要的)。所以我們直接運行界面就會顯示Title的文字信息

往下看

在"MainWindow.xaml"文件里面還有這樣一段內容,這里就表示

你定義了一個名字叫 ContentRegion 的區域,后邊你注冊的界面就會繪制到這個區域。

 <Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions><ContentControl Grid.Row="1" Grid.Column="1" prism:RegionManager.RegionName="ContentRegion" /></Grid>

稍微添修改一下把界面Grid分成2行2列,并且把定義的區域放在 第二行二列里面(Grid.Row="1" Grid.Column="1"?)

     private string _title = "Prism Application";public string Title{get { return _title; }set { SetProperty(ref _title, value); }}private readonly IRegionManager _regionManager;public DelegateCommand<string> DelegateCommand_Open { get; private set; }public MainWindowViewModel(IRegionManager contentRegion){_regionManager = contentRegion;DelegateCommand_Open = new DelegateCommand<string>(OPen);}private void OPen(string obj){// viewName 可能是 "HomeView", "SettingsView", "AboutView" 等if (!string.IsNullOrEmpty(obj)){// 導航到 ContentRegion 中指定的視圖_regionManager.RequestNavigate("ContentRegion", obj);}}

而"MainWindowViewModel.cs"里面我們定義了一個?DelegateCommand<string> DelegateCommand_Open?可以接收一個 string 參數的命令。斌且在構造函數里面 引入一個接口IRegionManager contentRegion 是為了拿到我們通過接口注入的東西。

我這里定義了一個用戶控件,并且在界面上面放了一個,TEXT方便顯示效果

在APP.XML.CS里面我加了這樣一個注入 這樣就代表我們手動綁定?Form_1 和上下文?MainWindowViewModel 這里要解釋一下為什么手動綁定這個?因為之前我們在MainWindowViewModel 里面的構造函數里面綁定了下面兩個 我們注冊的regionManager 就可以通過接口拿到

public MainWindowViewModel(IRegionManager contentRegion){_regionManager = contentRegion;DelegateCommand_Open = new DelegateCommand<string>(OPen);}

再通過??_regionManager.RequestNavigate("ContentRegion", obj); 去繪制到ContentRegion指定的區域 繪制的內容是通過我們注冊的名稱 也就是 Form_1

我們去給綁定一下

這樣就實現了點擊按鈕就會把參數傳入到 binding綁定的方法里面? 我們binding綁定的是open方法

也就是我們把Form_1 傳入到了Open方法里面然后通過?_regionManager.RequestNavigate("ContentRegion", obj);向指定區域中導航一個視圖

點擊按鈕運行效果

我們看到的這種也是通過基礎的導航綁定注冊來實現的

英語比較差記一下:

?IRegionManager :“通過引入這個接口可以拿到我們在 App.xaml.cs 里面注冊的窗體

DelegateCommand: 給XML界面提供屬性綁定的 這個命令去綁定一個方法,按鈕或者其他觸發后就會去調用這個命令所綁定的方法可以帶參數.

?regionManager.RequestNavigate:向指定區域中導航一個視圖,它告訴 Prism:“請把某個已經注冊的視圖加載進這個區域中

? ?<ContentControl? prism:RegionManager.RegionName="ContentRegion"/>:我們在界面上放置了一個區域,名字叫 ContentRegion

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85314.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85314.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《C++初階之入門基礎》【C++的前世今生】

【C的前世今生】目錄 前言&#xff1a;---------------起源---------------一、歷史背景二、橫空出世---------------發展---------------三、標準立世C98&#xff1a;首個國際標準版本C03&#xff1a;小修訂版本 四、現代進化C11&#xff1a;現代C的開端C14&#xff1a;對C11的…

YOLOv5-入門篇筆記

1.創建環境 conda create -n yolvo5 python3.8 去pytorch.org下載1.8.2的版本。 pip --default-timeout1688 install torch1.8.2 torchvision0.9.2 torchaudio0.8.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cu111 github上下載yolov5的zip pip --def…

【PostgreSQL 03】PostGIS空間數據深度實戰:從地圖服務到智慧城市

PostGIS空間數據深度實戰&#xff1a;從地圖服務到智慧城市 關鍵詞 PostGIS, 空間數據庫, 地理信息系統, GIS, 空間查詢, 地理分析, 位置服務, 智慧城市, 空間索引, 坐標系統 摘要 PostGIS是PostgreSQL的空間數據擴展&#xff0c;它將普通的關系數據庫轉變為強大的地理信息系統…

科技修真的解決方案

“科技修真”是一個結合現代科技與修真&#xff08;玄幻&#xff09;元素的創新概念&#xff0c;通常出現在科幻或玄幻文學作品中&#xff0c;但也可能指代現實中的科技與傳統文化、超自然理念的融合探索。以下是幾種可能的“科技修真”方案&#xff0c;涵蓋技術實現、文化融合…

STM32的HAL編碼流程總結(上部)

目錄 一、GPIO二、中斷系統三、USART串口通信四、I2C通信五、定時器 一、GPIO 1.選擇調試類型 在SYS中Debug選擇Serial Wire模式 2.選擇時鐘源 在RCC中將HSE和LSH都選擇為內部晶振 3.時鐘樹配置 4.GPIO配置 在芯片圖上選擇開啟的引腳和其功能 配置引腳的各自屬性 5.工…

java直接獲取MyBatis將要執行的動態sql命令(不是攔截器方式)

目錄 前言 一. 準備數據 1. 傳輸過來的json條件數據 2. mybatis 配置的動態sql 3. 想要的最終會執行的sql并返回給頁面展示 二. 實現方式 三. 最終代碼 前言 1.在平常開發過程中,MyBatis使用時非常多的,一般情況下我們只需要在控制臺看看MyBatis輸出的日志,要不就是實…

機器學習算法-決策樹

今天我們用一個 「相親決策」 的例子來講解決策樹算法&#xff0c;保證你輕松理解原理和實現&#xff01; &#x1f333; 決策樹是什么&#xff1f; 決策樹就像玩 「20個問題」猜謎游戲&#xff1a; 你心里想一個東西&#xff08;比如「蘋果」&#xff09; 朋友通過一系列問題…

2025——》VSCode Windows 最新安裝指南/VSCode安裝完成后如何驗證是否成功?2025最新VSCode安裝配置全攻略

1.VSCode Windows 最新安裝指南: 以下是 2025 年 Windows 系統下安裝 Visual Studio Code(VSCode)的最新指南,結合官方文檔與實際操作經驗整理而成: 一、下載官方安裝包: 1.訪問官網: 打開瀏覽器,進入 VSCode 官方下載頁面https://code.visualstudio.com/Download 2…

【Elasticsearch】suggest

在Elasticsearch中&#xff0c;suggest 是一個非常強大的功能&#xff0c;用于實現自動補全、拼寫糾錯和模糊搜索等功能。它可以幫助用戶更快地找到他們想要的內容&#xff0c;同時提升搜索體驗。以下是關于 suggest 的詳細使用方法和常見場景。 1\. Suggest 的基本概念 sugges…

[SAP] 如何查詢當前屏幕的Tcode?

事務代碼Tcode是SAP中到達特定屏幕的快捷路徑 如何查詢以下屏幕的事務碼Tcode&#xff1f; 要瀏覽當前所使用的屏幕的事務碼&#xff0c;可以選擇System | Status 這里的事務代碼是[VA22]&#xff0c;它是Change Quotation的事務代碼

PostgreSQL的擴展 dblink

PostgreSQL的擴展 dblink dblink 是 PostgreSQL 的一個核心擴展&#xff0c;允許在當前數據庫中訪問其他 PostgreSQL 數據庫的數據&#xff0c;實現跨數據庫查詢功能。 一、dblink 擴展安裝與啟用 1. 安裝擴展 -- 使用超級用戶安裝 CREATE EXTENSION dblink;2. 驗證安裝 -…

ADB推送文件到指定路徑解析

您執行的命令 adb push ota.zip /sdcard/Download 中&#xff0c;目標路徑 /sdcard/Download 是您顯式指定的&#xff0c;因此 ADB 會直接將文件推送到此位置。具體過程如下&#xff1a; 1. 命令結構解析 adb push&#xff1a;ADB 的推送指令。ota.zip&#xff1a;本地計算機上…

Linux 內核中 skb_orphan 的深度解析:從版本差異到核心機制

引言 在 Linux 內核網絡子系統中,struct sk_buff(簡稱 skb)是管理網絡數據包的核心數據結構。skb_orphan 作為其生命周期管理的關鍵函數,負責切斷 skb 與所屬 socket 的關聯,確保數據包在復雜處理流程中的獨立性。本文將從代碼實現、版本差異、使用場景等多個維度,深入解…

03.MySQL表的操作詳解

MySQL表的操作詳解 MySQL 表的操作概述創建表 2.1 創建表的基本語法查看表結構修改表 4.1 新增列 4.2 修改列屬性 4.3 修改列名 4.4 修改表名 4.5 刪除列刪除表 1. MySQL表的操作概述 MySQL表的操作是數據庫開發和管理中的核心內容&#xff0c;主要涉及**數據定義語言&#…

Flink系列文章列表

把寫的文章做一個匯總&#xff0c;會陸續更新的。 Flink流處理原理與實踐&#xff1a;狀態管理、窗口操作與容錯機制-CSDN博客

【目標檢測】【AAAI-2022】Anchor DETR

Anchor DETR&#xff1a; Query Design for Transformer-Based Object Detection 錨點DETR&#xff1a;基于Transformer的目標檢測查詢設計 論文鏈接 代碼鏈接 摘要 在本文中&#xff0c;我們提出了一種基于Transformer的目標檢測新型查詢設計。此前的Transformer檢測器中&am…

apptrace 的優勢以及對 App 的價值

官網地址&#xff1a;AppTrace - 專業的移動應用推廣追蹤平臺 apptrace 的優勢以及對 App 的價值? App 拉起作為移動端深度鏈接技術的關鍵應用&#xff0c;能實現從 H5 網頁到 App 的無縫跳轉&#xff0c;并精準定位到 App 內指定頁面。apptrace 憑借專業的技術與豐富的經驗…

16-前端Web實戰(Tlias案例-部門管理)

在前面的課程中&#xff0c;我們學習了Vue工程化的基礎內容、TS、ElementPlus&#xff0c;那接下來呢&#xff0c;我們要通過一個案例&#xff0c;加強大家對于Vue項目的理解&#xff0c;并掌握Vue項目的開發。 這個案例呢&#xff0c;就是我們之前所做的Tlias智能學習輔助系統…

Python爬蟲實戰:研究Goutte庫相關技術

1. 引言 1.1 研究背景與意義 隨著互聯網信息的爆炸式增長,如何高效、準確地獲取和分析 Web 數據成為重要研究課題。網絡爬蟲作為自動獲取網頁內容的關鍵技術,在搜索引擎優化、輿情分析、市場調研等領域具有廣泛應用。然而,現代網站越來越多地采用 JavaScript 動態渲染技術…

Python----目標檢測(《基于區域提議網絡的實時目標檢測方法》和Faster R-CNN)

一、《基于區域提議網絡的實時目標檢測方法》 1.1、基本信息 標題&#xff1a;Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 作者&#xff1a;任少卿&#xff08;中國科學技術大學、微軟研究院&#xff09;、何凱明&#xff08;微軟研究…