5.2.3 WPF 中 XAML 文件 Converter 使用介紹

????????Converter(轉換器)在 WPF 數據綁定中扮演著重要角色,用于在源數據和目標屬性之間進行值轉換

? ? ? ? 舉例來說:我想用一個bool量來控制一個背景,為true時,顯示紅色;為false時背景用默認顏色。因此 Background="{Binding 某bool量}",這個bool量不是顏色值,怎么轉換成顏色值?就需要一個繼承自IValueConverter的轉換器。見例子所示:

例一:bool量轉換成顏色。

? ? ? 注意需要先在window.Resources中把這個類引用過來。

? ? ? 因為我這個轉換類的命名空間就是這個定義的local中,可以直接寫

?<local:BooleanToColorConverter x:Key="BooleanToColorConverter"/>

????????如果命名空間不一致,則見例子2。

? 最終效果如下:

<Window.Resources><local:BooleanToColorConverter x:Key="BooleanToColorConverter"/>
</Window.Resources>
<Grid><StackPanel  ><Border Height="50" Width="100" Background="{Binding BSetRed,Converter={StaticResource BooleanToColorConverter}, ConverterParameter=Red}"/><Button Content="反轉顏色" Click="Button_Click"     /></StackPanel></Grid>
public class BooleanToColorConverter : IValueConverter
{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if((bool)value){return parameter;}else{return DependencyProperty.UnsetValue;}}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return (value == parameter);}
}
 public partial class Window1 : Window,INotifyPropertyChanged{bool bSetRed = false;public event PropertyChangedEventHandler PropertyChanged;public bool BSetRed { get => bSetRed;set { bSetRed = value;PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BSetRed"));} }public Window1(){InitializeComponent();DataContext = this;}private void Button_Click(object sender, RoutedEventArgs e){BSetRed = !bSetRed;}}

例2:bool量轉換成顏色。轉換類放到其他命名空間下,比如Common.

此時因local下找不到這個類,所以報警。

此時:追加一個common的命名空間。然后程序可以正常運行。

namespace AhuiPLC_CurveRecord.Common
{public class BooleanToColorConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if((bool)value){return parameter;}else{return DependencyProperty.UnsetValue;}}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return (value == parameter);}}
}

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

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

相關文章

MySQL 8 自動安裝腳本(CentOS-7 系統)

文章目錄 一、MySQL 8 自動安裝腳本腳本說明&#x1f4cc; 使用腳本前提條件1. 操作系統2. 用戶權限3. 網絡要求 &#x1f4cc; 腳本的主要功能1. 環境檢查2. MySQL 自動安裝3. 自動配置 MySQL4. 防火墻配置5. 驗證與輸出 &#x1f4cc; 適用場景 二、執行sh腳本1. 給予腳本執行…

Python跨平臺桌面應用程序開發

引言 在當今軟件開發領域&#xff0c;跨平臺應用程序開發變得越來越重要。用戶希望無論使用Windows、macOS還是Linux系統&#xff0c;都能獲得一致的應用體驗。Python作為一種高級編程語言&#xff0c;憑借其簡潔的語法和豐富的庫生態系統&#xff0c;成為了跨平臺桌面應用程序…

使用 Docker 安裝 SQL Server 2022 并解決 Navicat 連接問題

在使用 Docker 安裝 SQL Server 時&#xff0c;很多人可能遇到過無法通過 Navicat 等數據庫客戶端連接到容器的情況。尤其是嘗試使用 mcr.microsoft.com/mssql/server:2022-latest 鏡像時&#xff0c;可能會發現 Navicat一直轉圈&#xff0c;無法連接到數據庫。在這篇博客中&am…

2025最新軟件測試面試八股文(答案+文檔+視頻講解)

1、你的測試職業發展是什么&#xff1f; 測試經驗越多&#xff0c;測試能力越高。所以我的職業發展是需要時間積累的&#xff0c;一步步向著高級測試工程師奔去。而且我也有初步的職業規劃&#xff0c;前3年積累測試經驗&#xff0c;按如何做好測試工程師的要點去要求自己&…

理解計算機系統_網絡編程(2)

前言 以<深入理解計算機系統>(以下稱“本書”)內容為基礎&#xff0c;對程序的整個過程進行梳理。本書內容對整個計算機系統做了系統性導引,每部分內容都是單獨的一門課.學習深度根據自己需要來定 引入 接續上一篇理解計算機系統_網絡編程(1)-CSDN博客 國際互聯…

【盈達科技】GEO(生成式引擎優化)底層邏輯

??一、GEO的現狀?? ??技術快速迭代?? 生成式AI&#xff08;如ChatGPT、Claude、Google SGE&#xff09;正在成為用戶獲取信息的核心入口&#xff0c;傳統搜索引擎的流量被分流。主流平臺如Google推出“生成式搜索體驗&#xff08;SGE&#xff09;”&#xff0c;Bing整合…

VS Code 智能代理模式:重塑開發體驗

在編程領域&#xff0c;效率與精準度無疑是開發者們永恒的追求。而如今&#xff0c;VS Code 推出的智能代理模式&#xff08;Agent Mode&#xff09;&#xff0c;正以前所未有的方式&#xff0c;徹底顛覆了傳統開發流程&#xff0c;為程序員們帶來了一場前所未有的效率革命。本…

【回眸】Aurix TC397 IST 以太網 UDP 相關開發

前言 關于移植IST功能至 Infineon TC397上主要涉及到UDP發送報文及接收。IST是安全診斷相關的工作 Nvidia IST介紹 Orin系列芯片會提供一種機制來檢測由系統內測&#xff08;IST&#xff09;所產生的永久的故障&#xff0c;IST 應該在 Orin-x 功能安全系統中使用期間被啟動。…

Mediamtx與FFmpeg遠程與本地推拉流使用

1.本地推拉流 啟服 推流 ffmpeg -re -stream_loop -1 -i ./DJI_0463.MP4 -s 1280x720 -an -c:v h264 -b:v 2000k -maxrate 2500k -minrate 1500k -bufsize 3000k -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream 拉流 ffplay -rtsp_transport tcp rtsp://43.136.…

使用QML Tumbler 實現時間日期選擇器

目錄 引言相關閱讀項目結構示例實現與代碼解析示例一&#xff1a;時間選擇器&#xff08;TimePicker&#xff09;示例二&#xff1a;日期時間選擇器&#xff08;DateTimePicker&#xff09; 主窗口整合運行效果總結下載鏈接 引言 在現代應用程序開發中&#xff0c;時間與日期選…

R語言中的常用內置函數

常用的數值函數 常用的字符函數 與概率分布相關的函數 有用的統計函數 數據來源:《數據挖掘與數據分析&#xff1a;基于R語言》王陽 2024年1月出版

org.springframework.core.env.PropertiesPropertySource 類詳解

org.springframework.core.env.PropertiesPropertySource 類詳解 1. 基本概述 類路徑: org.springframework.core.env.PropertiesPropertySource繼承關系: 繼承自 PropertySource<Properties>&#xff0c;實現 PropertySource 接口。作用: 將 Java Properties 對象&…

2025-04-22 李沐深度學習5 —— 線性回歸

文章目錄 1 案例介紹1.1 應用場景&#xff1a;美國房價預測1.2 核心假設1.3 線性回歸與神經網絡的關系1.4 平方損失&#xff08;L2 Loss&#xff09;1.5 訓練模型&#xff1a;最小化損失 2 基礎優化算法2.1 梯度下降2.2 小批量隨機梯度下降&#xff08;Mini-batch SGD&#xff…

你的大模型服務如何壓測:首 Token 延遲、并發與 QPS

寫在前面 大型語言模型(LLM)API,特別是遵循 OpenAI 規范的接口(無論是 OpenAI 官方、Azure OpenAI,還是 DeepSeek、Moonshot 等眾多兼容服務),已成為驅動下一代 AI 應用的核心引擎。然而,隨著應用規模的擴大和用戶量的增長,僅僅關注模型的功能是不夠的,API 的性能表…

數字化轉型避坑指南:中鈞科技如何用“四個錨點”破解轉型深水區

數字化轉型浪潮下&#xff0c;企業常陷入四大典型陷阱&#xff1a;跟風式投入、數據沼澤化、流程偽在線、安全裸奔化。中鈞科技旗下產品以“經營幫”平臺為核心&#xff0c;通過針對性方案幫助企業繞開深坑。 陷阱一&#xff1a;盲目跟風&#xff0c;為數字化而數字化 許…

時分復用、頻分復用和碼分復用簡要比較分析

時分復用&#xff08;TDM&#xff09;、頻分復用&#xff08;FDM&#xff09;和碼分復用&#xff08;CDM&#xff09;是經典的多路復用技術&#xff0c;它們通過不同的方式共享信道資源。以下是兩者的詳細比較及其優缺點&#xff1a; 1. 原理對比 時分復用&#xff08;TDM&…

MCP認證難題破解:常見技術難題實戰分析與解決方案

MCP認證難題破解:常見技術難題實戰分析與解決方案 一、引言:MCP認證——智能協作領域的“技術試金石” MCP(Multi-agent Communication Protocol)認證作為多智能體系統領域的權威認證,旨在考察考生對MCP協議設計、智能體協作架構、分布式系統優化等核心技術的掌握程度。…

最新iOS性能測試方法與教程

一、工具instrument介紹 使用Xcode的instrument進行測試&#xff0c;instrument自帶了很多性能方面的測試工具&#xff0c;如圖所示&#xff1a; 二、常見性能測試內容 不管是安卓還是iOS的性能測試&#xff0c;常見的性能測試都要包含這五個方面&#xff1a; 1、內存&#xff…

Vue el-checkbox 虛擬滾動解決多選框全選卡頓問題 - 高性能處理大數據量選項列表

一、背景 在我們開發項目中&#xff0c;經常會遇到需要展示大量選項的多選框場景&#xff0c;比如權限配置、數據篩選等。當選項數量達到幾百甚至上千條時&#xff0c;傳統的渲染方式全選時會非常卡頓&#xff0c;導致性能問題。本篇文章&#xff0c;記錄我使用通過虛擬滾動實現…

JWT的token泄露要如何應對

文章目錄 前言? 一、預防措施&#xff08;防泄露&#xff09;&#x1f6a8; 二、應急響應機制&#xff08;發現已泄露&#xff09;&#x1f512; 1. **啟用 Token 黑名單機制**&#x1f501; 2. **啟用 Refresh Token 機制 旋轉令牌**&#x1f4cd; 3. **強制下線機制**&…