zoukankan      html  css  js  c++  java
  • Binding ,抄自 http://www.cnblogs.com/cnblogsfans/archive/2011/02/19/1958586.html

    1. 绑定到其它元素

     

    <Grid>
    <StackPanel >
    <TextBox x:Name="textBox1" Height="150" BorderBrush="Black" BorderThickness="10"/>
    <Label Content="{Binding ElementName=textBox1,Path=Text}"/>
    </StackPanel>

    </Grid>

    2. 绑定到静态资源

    <Window.Resources>
    <ContentControl x:Key="FirstKey">Hello World!</ContentControl>
    </Window.Resources>
    <Grid>
    <StackPanel>
    <Label x:Name="label1" Content="{Binding Source={StaticResource ResourceKey=FirstKey}}"/>
    </StackPanel>
    </Grid>

    3.绑定到自身

    <StackPanel>
    <Label x:Name="label45347356736" BorderBrush="Black" Width="1200" Content="{Binding RelativeSource={RelativeSource Self},Path=Width}"/>
    </StackPanel>

    4.绑定到指定类型的父元素

     

    <Grid x:Name="Grid1">
    <StackPanel>
    <Label x:Name="label1" Content="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}},Path=Name}"/>
    </StackPanel>
    </Grid>

    5. 绑定到对象 

    public class Person
    {
    public string Name { get; set; }
    public int Age { get; set; }
    }

    <StackPanel x:Name="stackPanel">
    <StackPanel.DataContext>
    <local:Person Name="Fred" Age="29"/>
    </StackPanel.DataContext>
    <TextBlock Text="{Binding Path=Name}"/>
    <TextBlock Text="{Binding Path=Age}"/>
    </StackPanel>

    6. 绑定到集合

    <Window.Resources>
    <local:PersonList x:Key="person">
    <local:Person Name="Fred" Age="30"/>
    <local:Person Name="ZFF" Age="30"/>
    </local:PersonList>
    </Window.Resources>
    <StackPanel x:Name="stackPanel">
    <ListBox ItemsSource="{Binding Source={StaticResource ResourceKey=person}}" DisplayMemberPath="Name"/>
    </StackPanel>

    public class Person
    {
    public string Name { get; set; }
    public int Age { get; set; }
    }

    public class PersonList:ObservableCollection<Person>
    {

    }

    8.DataContext共享源

    WPF 提供了一个称之为 "数据上下文 (DataContext)" 的东西让我们可以在多个元素上共享一个源对象,只需将其放到父元素 DataContext 属性即可。当我们不给 Binding 扩展标志指定 Source 属性时,它会自动寻找上级父元素的数据上下文。

     9.使用XML作为Binding的源
     
    <StackPanel>
           <ListView x:Name="personListView">
               <ListView.View>
                   <GridView>
                       <GridViewColumn Header="Id" Width="100"
                                        DisplayMemberBinding="{Binding XPath=@Id}"/>
                       <GridViewColumn Header="Name" Width="100"
                                        DisplayMemberBinding="{Binding XPath=Name}"/>
                   </GridView>
               </ListView.View>
           </ListView>   
           <Button Click="Button_Click">Load Data</Button>
       </StackPanel>

    private void btn_Click(object sender, RoutedEventArgs e)
    {
    XmlDocument xmlDocument = new XmlDocument();
    xmlDocument.Load(@"E:Work20150516WpfApplication368WpfApplication368FirstXML.xml");

    XmlDataProvider xdp = new XmlDataProvider();
    xdp.Document = xmlDocument;
    xdp.XPath = @"/PersonList/Person";

    this.personListView.DataContext = xdp;
    this.personListView.SetBinding(ListView.ItemsSourceProperty, new Binding());
    }

     
  • 相关阅读:
    SQL 操作结果集 -并集、差集、交集、结果集排序
    MongoDB系列四:解决secondary的读操作
    org.apache.hadoop.ipc.RemoteException: User: root is not allowed to impersonate root
    hive 中窗口函数row_number,rank,dense_ran,ntile分析函数的用法
    FormData上传文件同时附带其他参数
    Hive删除分区
    Hive日期格式转换用法
    HIVE 不支持group by 别名
    ODS与EDW的区别
    hive数据类型转换、字符串函数、条件判断
  • 原文地址:https://www.cnblogs.com/Fred1987/p/5978120.html
Copyright © 2011-2022 走看看