使用Binding的RelativeSource

一個Binding有明確的數據來源 可以通過Source或ElementName賦值的方法讓Binding與之關聯

但是有的時候我們不能確定作為Source的對象叫什么名字,但知道它與作為Binding目標的對象在UI上有相對關系,比如:空間自己關聯自己的某個數據、關聯自己某級容器的數據

這個時候!我們就要使用Binding的RelativeSource屬性了!

看個小例子

<Window x:Class="Wpf.Relative6312xaml"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:Wpf"mc:Ignorable="d"Title="Relative6312xaml" Height="200" Width="200"><Grid x:Name="g1" Background="LightPink" Margin="10"><DockPanel x:Name="d1" Background="LightBlue" Margin="10"><Grid x:Name="g2" Background="LightCoral" Margin="10"><DockPanel x:Name="d2" Background="LightGreen" Margin="10"><TextBox x:Name="textBox1" FontSize="24" Margin="10"></TextBox></DockPanel></Grid></DockPanel></Grid>
</Window>

效果圖是這個樣子的

把TextBox的Text屬性關聯到外層容器的Name屬性上 在XAML中插入代碼

<Window x:Class="Wpf.Relative6312xaml"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:Wpf"mc:Ignorable="d"Title="Relative6312xaml" Height="200" Width="200"><Grid x:Name="g1" Background="LightPink" Margin="10"><DockPanel x:Name="d1" Background="LightBlue" Margin="10"><Grid x:Name="g2" Background="LightCoral" Margin="10"><DockPanel x:Name="d2" Background="LightGreen" Margin="10"><TextBox x:Name="textBox1" FontSize="24" Margin="10"Text="{Binding RelativeSource= {RelativeSource FindAncestor, AncestorType={x:Type Grid},AncestorLevel=1}, Path=Name}"></TextBox></DockPanel></Grid></DockPanel></Grid>
</Window>

效果圖

也可以在窗體的構造器中創建RelativeSource的對象再進行Binding

RelativeSource FindAncestor:尋找TextBox的祖宗元素

AncestorLevel = 1;向外層找1層

AncestorType = {x: Type Grid}:尋找的類型為Grid類型

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

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

相關文章

Flutter代碼補全

有的時候屬性不經常使用&#xff0c;就想不起來該用啥&#xff0c;只有點點印象&#xff1b;只能用代碼補全功能&#xff0c;但我用了AS的默認操作發下并不好使&#xff0c;估計是快捷鍵沖突了。剛開始是不是下面的效果&#xff1a;這肯定不是我們想要的。 不怕&#xff0c;接下…

【S32DS報錯】-2-提示Error while launching command:arm-none-eabi-gdb –version錯誤

目錄 1 Error錯誤提示 2 Error錯誤原因 3 如何消除Error錯誤 結尾 【S32K3_MCAL從入門到精通】合集&#xff1a; S32K3_MCAL從入門到精通https://blog.csdn.net/qfmzhu/category_12519033.html 1 Error錯誤提示 使用S32DSJ-LinK下載程序&#xff0c;在Dedug Configurati…

計算機基礎知識67--BBS

遷移表格 # 以后你寫的每個python項目&#xff0c;都必須有一個txt文件叫 requirements.txt,里面放了當前項目所有的依賴&#xff0c;別人拿到項目---》需要執行 pip install -r requirements.txt # 裝好該項目所有依賴 django3.2.20 # 模塊 pillow mysqlclient # 主體項目功…

中東電商指南分享!盤點中東四大跨境電商平臺

提到跨境電商新藍海&#xff0c;就不得不想起土豪聚集地 ——中東&#xff0c;中東地區擁有龐大的人口、高人均GDP、強大的消費能力以及廣泛普及的互聯網&#xff0c;但外出購物卻相對不便&#xff0c;正是這一特點為中東跨境電商市場創造了巨大的優勢。隨著中東地區電商的崛起…

mycat實現分表操作、isinstance的使用、sqlalchemy的使用、mysql數據庫連接池

1 mycat實現分表操作 2 isinstance的使用 3 sqlalchemy的使用 4 mysql數據庫連接池 1 mycat實現分表操作 在 MySQL 數據庫中&#xff0c;Mycat 通常用于實現分片&#xff08;Sharding&#xff09;操作。分片是一種將大型數據庫水平拆分成多個較小數據庫的策略&#xff0c;以提…

Gan論文閱讀筆記

GAN論文閱讀筆記 2014年老論文了&#xff0c;主要記錄一些重要的東西。論文鏈接如下&#xff1a; Generative Adversarial Nets (neurips.cc) 文章目錄 GAN論文閱讀筆記出發點創新點設計訓練代碼網絡結構代碼測試代碼 出發點 Deep generative models have had less of an impac…

軟件壓力測試的重要性與用途

在當今數字化的時代&#xff0c;軟件已經成為幾乎所有行業不可或缺的一部分。隨著軟件應用規模的增加和用戶數量的上升&#xff0c;軟件的性能變得尤為關鍵。為了確保軟件在面對高并發和大負載時仍然能夠保持穩定性和可靠性&#xff0c;軟件壓力測試變得至關重要。下面是軟件壓…

提醒事項日歷同步怎么設置?可實時同步日歷的提醒事項工具

隨著生活節奏的加快&#xff0c;我們每天都需要處理許多瑣碎的事務。為了不忘記重要的事情&#xff0c;很多人選擇使用提醒事項工具來幫助自己。然而&#xff0c;市場上的提醒事項工具五花八門&#xff0c;有些并不具備日歷月視圖功能&#xff0c;也無法與手機日歷同步&#xf…

JavaScript 復雜的<三元運算符和比較操作>的組合--案例(一)

在逆向的時候,碰上有些復雜的js代碼,邏輯弄得人有點混; 因此本帖用來記錄一些棘手的代碼,方便自己記憶,也讓大家拓展認識~ ----前言 內容: function(e, t, n) {try {1 (e "{" e[0] ? JSON.parse(e) : JSON.parse(webInstace.shell(e))).Status || 200 e.Code…

Linux學習筆記7-IIC的應用和AP3216C

接下來進入其他兩種串行通信方式&#xff1a;SPI和I2C的學習&#xff0c;因為以后的項目中會用到這些通信方式&#xff0c;而且正點原子的開發板里面也有用I2C和SPI通信的傳感器來做實例&#xff0c;分別是一個距離傳感器和六軸陀螺儀&#xff0c;這樣就可以很好的通過實例來學…

GRE與順豐圓通快遞盒子

1. DNS污染 隨想&#xff1a; 在輸入一串網址后&#xff0c;會發生如下變化如果你在系統中配置了 Hosts 文件&#xff0c;那么電腦會先查詢 Hosts 文件如果 Hosts 里面沒有這個別名&#xff0c;就通過域名服務器查詢域名服務器回應了&#xff0c;那么你的電腦就可以根據域名服…

第六屆“強網”擬態防御國際精英挑戰賽——入圍戰隊篇

第六屆“強網”擬態防御國際精英挑戰賽即將于2023年12月6日在南京盛大開賽&#xff01;本屆挑戰賽再次為全球頂尖戰隊提供實戰機會&#xff0c;向多類擬態防御設備系統發起挑戰&#xff0c;在眾測實戰中持續檢驗中國制造內生安全數字產品所具有的中國力量。 本屆挑戰賽參賽戰隊…

【LeetCode:1466. 重新規劃路線 | DFS + 圖 + 樹】

&#x1f680; 算法題 &#x1f680; &#x1f332; 算法刷題專欄 | 面試必備算法 | 面試高頻算法 &#x1f340; &#x1f332; 越難的東西,越要努力堅持&#xff0c;因為它具有很高的價值&#xff0c;算法就是這樣? &#x1f332; 作者簡介&#xff1a;碩風和煒&#xff0c;…

Vue 子路由頁面發消息給主路由頁面 ,實現主頁面顯示子頁面的信息

需求 子頁面進入后&#xff0c;能在主頁面顯示子頁的相關信息&#xff0c;比如說主頁面的菜單激活的是哪個子頁面的菜單項 如上圖&#xff0c;當刷新瀏覽器頁面時&#xff0c;讓菜單的激活項仍保持在【最近瀏覽】。 實現方式&#xff1a; 在子頁面的create事件中增加&#xff…

Java File類詳解(下)練習一

練習 第一題 需求&#xff1a;在當前模塊下的aaa文件夾中創建一個a.txt文件 import java.io.File; import java.io.IOException;public class FileExer01 {public static void main(String[] args) throws IOException {File f1 new File("AllInOne\\aaa");f1.mk…

docker-compose腳本編寫關鍵詞詳解

docker-compose腳本編寫高頻關鍵詞&#xff08;一&#xff09; 此處關鍵詞應該必須能靈活運用 關鍵詞 解釋 例子 version 定義使用的docker-compose文件版本。較新的版本支持更豐富的功能和選項。 version: 3.8 services 定義應用程序的各個服務及其配置。每個服務通常…

Vue:繪制圖例

本文記錄使用Vue框架繪制圖例的代碼片段。 可以嵌入到cesium視圖中,也可以直接繪制到自己的原生系統中。 一、繪制圖例Vue組件 <div v-for="(color, index) in colors" :key="index" class="legend-item"><div class="color-…

深度學習還可以從如下方面進行創新!!

文章目錄 一、我認為可以從如下5個方向進行創新總結 一、我認為可以從如下5個方向進行創新 新的模型結構&#xff1a;盡管現在的深度學習模型已經非常強大&#xff0c;但是還有很多未被探索的模型結構。探索新的模型結構可以帶來更好的性能和更低的計算成本。 新的優化算法&a…

JavaScript數組面試題

JavaScript數組面試題 創建一個包含多個元素的數組&#xff0c;并打印輸出數組的內容。 const array ["apple", "banana", "orange"]; console.log(array);如何訪問數組中的特定元素&#xff1f; const array ["apple", "banan…

JS判斷數組中是否包含某個值

方法一&#xff1a;array.indexOf 此方法判斷數組中是否存在某個值&#xff0c;如果存在&#xff0c;則返回數組元素的下標&#xff0c;否則返回-1。 var arr[1,2,3,4]; var indexarr.indexOf(3); console.log(index);方法二&#xff1a;array.includes(searcElement[,fromIn…