WPF學習筆記:(一)數據綁定與DataContext


前一段半心半意地學習了一下WPF,是從控件入手的,發現巨容易,甚至有些無趣。昨天面試,被問到了很多WPF的特性的東西,直接就傻了。於是乎,還是要去深刻的學習一下WPF。剛剛試了一下數據綁定,幾次都沒有成功,后來發現是DataContext搞得鬼。

我暫時有兩點結論:

  1、如果沒有顯式設置上下文,那么數據上下文就是界面;

  例如下邊代碼,textBox1綁定textBlock2的Text屬性的時候,數據上下文就是Grid或者Grid父容器的DataContext,上下文中能用到就是界面元素的屬性。

    <Grid>
        <TextBox Height="23" HorizontalAlignment="Left" Margin="123,30,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Text="{Binding Path=MyValue}" />
        <TextBlock Height="23" HorizontalAlignment="Left" Margin="54,77,0,0" Name="textBlock2" Text="Luke" VerticalAlignment="Top" />
    </Grid>

  2、可以在任何時候顯式設置上下文,但是設置上下文以后綁定才會有效。

  設置方法是ctlId.DataContext = xxx,例如grid1.DataContext = this;

  3、可以在XAML中設置上下文

  在XAML中設置DataContext,有三點要設置:1)引用namespace;2)設置Resources;3)設置DataContext。如下代碼所示:

<Window x:Class="WpfAppDemo1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:c="clr-namespace:WpfAppDemo1"
        Title="MainWindow" Height="350" Width="525">
    <Grid Name="grid1">
        <Grid.Resources>
            <c:MyData x:Key="myData1" />
        </Grid.Resources>
        <Grid.DataContext>
            <Binding Source="{StaticResource myData1}" />
        </Grid.DataContext>
        <TextBox Height="23" HorizontalAlignment="Left" Margin="123,30,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Text="{Binding Path=MyName}" />
    </Grid>

到目前為止,我只知道這三種設置設置數據上下文的方式。關於數據綁定的內容,我還需要研究:)


免責聲明!

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



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