zoukankan      html  css  js  c++  java
  • 绑定非元素对象

    Source

    指向源对象的引用(提供数据的对象)——编写代码,或者从静态资源获取

    RelativeSoerce

    根据相对于目标对象的关系,指向源对象。

    将一个元素绑定到自身或者父元素。

    DataContext

    大量元素绑定到同一个对象。

    在上层对象中,使用DataContext属性。 上几层无所谓。

    <Window x:Class="Demo.WPFLearning.Bindingg.BindNoElementObjects"
            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:Demo.WPFLearning.Bindingg"
            mc:Ignorable="d"
            Title="BindNoElementObjects" Height="350" Width="400">
        <Window.Resources>
            <FontFamily x:Key="CustomFont1"> Calibri</FontFamily>
            <FontFamily x:Key="CustomFont2">Seria</FontFamily>
        </Window.Resources>
        <Grid>
            <StackPanel Margin="3" Name="StackPanel" DataContext="{x:Static SystemFonts.IconFontFamily}">
                <TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily},Path=Source}" Margin="3"/>
                <TextBlock Text="{Binding Source={StaticResource CustomFont1},Path=Source}" Margin="3"/>
    
                <TextBlock  >
                    <TextBlock.Text>
                        <Binding Path="Name">
                            <Binding.RelativeSource>
                                <RelativeSource Mode="FindAncestor" AncestorType="{x:Type StackPanel}" AncestorLevel="1"/>
                            </Binding.RelativeSource>
                        </Binding>
                    </TextBlock.Text>
                </TextBlock>
    
                <TextBlock Margin="5" Text="{Binding Path=Title,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}"/>
    
                <TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily},Path=Source}" Margin="3"/>
                <TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily},Path=LineSpacing}" Margin="3"/>
                <TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily},Path=FamilyTypefaces[0].Style}" Margin="3"/>
                <!--在上层设置dataContext 属性后,不需要再重新设置Source了,-->
                <TextBlock Text="{Binding Path=Source}" Margin="3"/>
                <TextBlock Text="{Binding Path=LineSpacing}" Margin="3"/>
                <TextBlock Text="{Binding Path=FamilyTypefaces[0].Style}" Margin="3"/>
    
            </StackPanel>
        </Grid>
    </Window>
  • 相关阅读:
    Cookie、Session详解
    阿里云高速maven库
    java23种设计模式详解
    分布式和集群的区别
    2016 年 Java 优秀文章
    java任务调度
    解酒
    中医教你如何调理女性内分泌失调
    Oracle RedoLog-二进制格式分析,文件头,DML,DDL
    Oracle RedoLog-基本概念和组成
  • 原文地址:https://www.cnblogs.com/codinghard/p/15680847.html
Copyright © 2011-2022 走看看