Binding的Path(路径)

  Binding的源可以是控件(一个控件是另一个控件的Source、控件把自己的容器作为Source),把集合作为ItemsControls的Source,把xml作为Tree或者Menu的Source,或者是不给它Source,让他自己去找。

  1. 一个控件为另一个控件的Source
<TextBox x:Name="textBox" Text="{Binding Value,ElementName=slider1}" BorderBrush="Black"  Margin="5"/>
<Slider x:Name="slider1" Maximum="100" Minimum="0" Margin="5"/>    这是两个控件Slider是TextBox的Source
这里是通过xaml语言设置的Binding,这里是Binding的标记扩展语法。等价于的C#语句为this.textBox1.SetBinding(TextBox.TextProperty,new Binding("Value"){ElementName="Slider1"});(Text等价于TextBox.TextProperty;(这个是Target). Binding Value=new Binding("Value"(这个是Path(Slide1的属性)).ElementName这个是source)

  • Path

Binding的路径支持多级路径,比如上面访问的Path是Value的属性,那么Path下面的次级路径。

Binding的路径还可以通过索引器来作为Path,比如:上面的Path是Value的属性(如果这个Value是一个集合),那么Path也可以是Value[1]来获取集合的第二个对象

Binding的路径还可以通过多级斜线的语法去寻找多级目录下面需要的Path,对应的栗子如下:

class City
    {
        public string Name { get; set; }

    }
    class Province
    {
        public string Name { get; set; }
        public List<City> CityList { get; set; }
    }
    class Country
    {
        public string Name { get; set; }
        public List<Province> ProvinceList { get; set; }
    }
       List<Country> countryList=new List<Country>{new Country(){Name="中国"}};
            List<string>  List=new List<string>(){"Tim","Tom","Blog"};
            this.textBox1.SetBinding(TextBox.TextProperty,new Binding("/"){Source=List});
            this.textBox2.SetBinding(TextBox.TextProperty,new Binding("/Length")  {Source=List,Mode=BindingMode.OneWay});
            this.textBox3.SetBinding(TextBox.TextProperty,new Binding("/[2]")    {Source=List,Mode=BindingMode.OneWay});
  • 不带Path的Binding(Binding源本身就是数据,比如放在Resource中的文本,或者一些不属于任何对象的数值)如下,栗子如下

<StackPanel.Resources>
<sys:String x:Key="myString">
不带Path的Binding
</sys:String>
</StackPanel.Resources><TextBlock x:Name="textBlock1" TextWrapping="Wrap" Text="{Binding Path=.,Source={StaticResource ResourceKey=myString}}" FontSize="16" Margin="5"/>

原文地址:https://www.cnblogs.com/1521681359qqcom/p/11291813.html

时间: 2024-11-07 08:59:10

Binding的Path(路径)的相关文章

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

Linux系统中增加和删除环境变量PATH路径详解

http://blog.csdn.net/pipisorry/article/details/39507699 Linux系统中要把/etc/apache/bin目录添加到PATH中: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后(关闭terminal就会失效),PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能

刚开始学java和刚去工作的时候,1.path路径 2.classpath路径 还有JAVA_HOME相当于/dgs这个路径

1.PATH路径,寻找javac.exe 如:%JAVA_HOME% 即是对应的是这个路径 在对应的路径下找到了这个命令 删除掉之后 在用户变量下面重新配置一下,也可以运行了 用户变量要是换了一个用户的话,则这路径失效,要无论什么用户都有效,在系统变量里配置 claspath路径,按路径寻找class文件并执行 新下载一个JDK 然后只进行了path变量的配置 javac编译  java运行 命令 输入java 和 java命令可以运行 cclasspath没配在当前路劲下找   配了只在cla

[转]sudo找不到命令:修改sudo的PATH路径

sudo有时候会出现找不到命令,而明明PATH路径下包含该命令,让人疑惑.其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要的PATH变量的路径,当然就找不到我们想要的命令了.两种方法解决该问题: 首先,都要打开sudo的配置文件:sudo visudo 方法1:可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指

Linux下修改PATH路径

1.#PATH=$PATH:/opt/lamp/mysql/bin       使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile       在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格)这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 但一般情况下我们不直接在这里面修改,在/etc/profile开头有这样的提示: # It's NOT a g

sudo找不到命令:修改sudo的PATH路径

sudo有时候会出现找不到命令,而明明PATH路径下包含该命令,让人疑惑.其 实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要 的PATH变量的路径,当然就找不到我们想要的命令了.两种方法解决该问题: 首先,都要打开sudo的配置文件:sudo visudo 1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指

获取文件path路径中的文件名(是否包含扩展名)

直接看代码吧 #获取文件path路径中文件名(去掉目录路径) sub get_file_basename{ my ($file_path) = @_; my @tmp_arr = split(/[\\|\/]+/,$file_path); my $len = @tmp_arr; if ($len >=2) { return $tmp_arr[-1]; }else{ return $file_path; } } #获取文件path路径中文件名(去掉目录路径,去掉扩展名) sub get_file_

Python之os.path路径模块中的操作方法总结

#os.path模块主要集成了针对路径文件夹的操作功能,这里我们就来看一下Python中的os.path路径模块中的操作方法总结,需要的朋友可以参考下 解析路径路径解析依赖与os中定义的一些变量: os.sep-路径各部分之间的分隔符. os.extsep-文件名与文件扩展名之间的分隔符. os.pardir-路径中表示目录树上一级的部分. os.curdir-路径中当前目录的部分. split()函数将路径分解为两个单独的部分,并返回包含这些结果的tuple.第二个元素是路径的最后部分,地一个

Linux 之 PATH路径简单理解

PATH路径简单理解 [[email protected] kang]# vi yy echo YY [[email protected] kang]# chmod +x yy [[email protected] kang]# ./yy YY [[email protected] kang]# pwd /root/kang 目的修改PATH路径,让用户在任何目录下输入yy都可执行 [[email protected] kang]# PATH="$PATH:/root/kang" [[