深入淺出WPF之Binding的使用(二)


  在上一篇中介紹了Binding的基本綁定方法,這一篇中我們在深入的介紹Binding的其他用法。

  Binding的源也就是數據的源頭,在日常的工作中,除了使用像上一篇中的Student對象作為數據源外,我們還有更多的選擇,比如控件把自己或者自己的容器或子級元素當做源,用一個控件作為另一個控件的數據源等等。

   把控件作為Binding源。  

    <Grid>
        <TextBox x:Name="Box" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="100,50,0,0"  Height="30" Width="200" Text="{Binding Path=Value,ElementName=Silder1,Mode=TwoWay}"/> 
        <Slider x:Name="Silder1" HorizontalAlignment="Left" Margin="100,120,0,0" Maximum="100" Minimum="0"    VerticalAlignment="Top" Width="200"/>
    </Grid>

  其中Text="{Binding Path=Value,ElementName=Silder1,Mode=TwoWay}"等價於C#代碼:

  this.Box.SetBinding(TextBox.TextProperty, new Binding("Value") { Source=Silder1});

  或 Binding binding = new Binding() { Path = new PropertyPath("Value"), Source = Silder1 };

    this.Box.SetBinding(TextBox.TextProperty,binding);

  

  Binding還支持多級路徑(通俗地將就是一路“點”下去)。比如,如果想讓一個TextBox顯示另外一個TextBox的文本長度,我們可以這么寫:

    <Grid>
        <TextBox x:Name="Box" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="100,50,0,0"  Height="30" Width="200" /> 
        <TextBox x:Name="Box2" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="100,123,0,0"  Height="30" Width="200" Text="{Binding Path=Text.Length,ElementName= Box,Mode=OneWay}" />
    </Grid>

等於C#代碼如下:  

  Binding binding = new Binding("Text.Length") { Source=Box,Mode=BindingMode.OneWay};
  this.Box2.SetBinding(TextBox.TextProperty,binding);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM