欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WPF數(shù)據(jù)綁定中的RelativeSource屬性

 更新時間:2022年04月21日 14:28:12   投稿:yangbin  
這篇文章介紹了WPF數(shù)據(jù)綁定中的RelativeSource屬性,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、簡介

一個在Binding中比較重要的知識點——RelativeSource. 使用RelativeSource對象指向源對象。用這個可以在當前元素的基礎(chǔ)上查找其他對象用于綁定到源對象。
在實際使用Binding的過程中大部分時間Binding都放在了數(shù)據(jù)模板和控件模板中,(數(shù)據(jù)模板是控件模板用于定義控件的UI)。

在模板中編寫B(tài)inding時有時候無法直接拿到我們需要綁定的數(shù)據(jù)對象,我們不能確定我們需要的Source對象叫什么,但是我們直到了我們需要使用的對象在UI布局上的相對關(guān)系。比如控件自己關(guān)聯(lián)了某個數(shù)據(jù),關(guān)鍵自己某個層級的容器數(shù)據(jù)。這個時候我們的RelativeSource就派上了用場。我們使用RelativeSource首先要3個關(guān)鍵參數(shù)。
AncestorType=我們需要查找的類型。比如Grid
AncestorLevel= 我們需要向上查找?guī)准墶?br />Path=我們找到的元素需要綁定的屬性。

二、代碼

<!--嵌套Grid-->
    <Grid x:Name="G0" Margin="12" Background="Red">
        <TextBlock Text="In this Grid0 container"/>
        <Grid x:Name="G1" Margin="12" Background="Blue">
            <TextBlock Text="In this Grid1 container"/>
            <Grid x:Name="G2" Margin="12" Background="Yellow">
                <TextBlock Text="In this Grid2 container"/>
                <Grid x:Name="G3" Margin="12" Background="Beige">
                    <StackPanel>
                        <TextBlock Text="In this Grid3 container"/>
                        <!--AncestorType=我們需要查找的類型。比如Grid-->
                        <!--AncestorLevel= 我們需要向上查找?guī)准?->
                        <!--Path=我們找到的元素需要綁定的屬性。-->
                        <TextBlock Name="ces" Text="{Binding RelativeSource={RelativeSource AncestorType=Grid,AncestorLevel=1},Path=Name}"/>
                    </StackPanel>
                </Grid>
            </Grid>
        </Grid>
    </Grid>

三、運行結(jié)果

我們嵌套幾個Grid,并在每個嵌套的Grid中都放入了一行文本用來顯示自己所在的位置。設(shè)置了Margin使他有部分的重疊,可以更好的看到相互之間的層級關(guān)系。最內(nèi)層使用一個TextBlock.在TextBlock的Text屬性上使用RelativeSource。通過修改AncestorLevel 來設(shè)置向上查找Grid的等級。我們設(shè)置為1.向外層查找第一個找到的Grid對象。并綁定對應(yīng)的Name。

到此這篇關(guān)于WPF數(shù)據(jù)綁定RelativeSource屬性的文章就介紹到這了。希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論