Windows Store apps开发[51]数据绑定(1)绑定模型

注:本文由BeyondVincent(破船)原创首发

        转载请注明出处:BeyondVincent(破船)@DevDiv.com



更多内容请查看下面的帖子


[DevDiv原创]Windows 8 开发Step by Step



小引

在Windows Store app开发中,数据绑定非常的重要,它提供了一个简单的方法,使我们的程序可以很方便的显示数据并与数据进行交互。今天我先给大家简单的介绍一下Windows Store app中的数据绑定,在后面的文章中,我会展开详细的介绍。

简介

数据绑定在UI控件中显示数据是非常重要的一部分内容。当任意一个UI控件使用了绑定,那么它将会显示出相应的数据。当然,很重要的一个因素就是当绑定的数据发生了改变,此时UI控件显示的内容就会自动的改变。同样,当用户在UI控件上做了改变,这些变动的数据也会被自动保存到数据对象中。

在数据绑定中,每一个绑定都有一个Mode属性,该属性决定了数据流是如何走向的。在Windows Store Apps中,如果使用XAML和C#开发,有3中Mode可以使用:
OneWay绑定
TwoWay绑定
Onetime绑定

OneWay

这是默认的绑定模型。OneWay绑定中,数据流的走向是从绑定源流向绑定目标的,不能反过来。当绑定源的数据发生了改变,那么绑定目标会得到更新。

示例:TextBox的Background为绑定目标,ListBox的SelectedItem.Content为绑定源

<Grid Background="BurlyWood">
    <Grid Height="150" Width="165" >
        <TextBox FontSize="30"  Name="textBox" Margin="0,-117,-218,0" Height="82" VerticalAlignment="Top" Foreground="Red"
            Text="OneWay绑定模式"
            Background="{Binding ElementName=listBox, Path=SelectedItem.Content, Mode=OneWay}">
        </TextBox>
        <ListBox Name="listBox" FontSize="30" Margin="0,0,-218,-70">
            <ListBoxItem Content="Green"/>
            <ListBoxItem  Content="Blue" IsSelected="True"/>
            <ListBoxItem Content="Orange" />
        </ListBox>
    </Grid>
</Grid>




TwoWay

就如名字一样,TwoWay绑定模式可以在绑定源于绑定目标之间相互同步数据。也就是说,无论是绑定源还是绑定目标,谁的数据改变了,另外一方的数据也会得到更新。


示例:


<Grid Background="Green">
    <Grid Height="180" Width="165">
        <TextBox FontSize="30"  Name="textBox" Margin="0,-101,-192,0" Height="56" VerticalAlignment="Top"
            Text ="{Binding ElementName=listBox,
                    Path=SelectedItem.Content,
                    Mode=TwoWay}">
        </TextBox>
        <ListBox FontSize="30" Name="listBox" Margin="0,0,-192,-62" >
            <ListBoxItem Content="破船"/>
            <ListBoxItem Content="BeyondVincent"/>
            <ListBoxItem Content="小破船"/>
            <ListBoxItem Content="小BeyondVincent"/>
        </ListBox>
    </Grid>
</Grid>

当选择ListBox中的数据时,TextBox中的内容也会跟着改变




当在TextBox中修改文本内容,ListBox中对应选中项也会改变[注意,TextBox需要失去Focus,才会触发数据改变]


OneTime


OneTime绑定模式,数据流是从绑定源到绑定目标的,并且只有一次。当绑定源的数据第一次发生改变时,绑定目标会得到更新。以后绑定源再怎么改变,绑定目标都不会更新。当需要查看数据首次加载情况时,可以选择这种模式。

示例:
<Grid Background="Green">
    <StackPanel Orientation="Vertical" VerticalAlignment="Center">
        <Slider x:Name="sliderOneTimeDataSource" Minimum="1" Maximum="100" Value="50"  Background="Wheat" Margin="593,0,354,0"/>
        <TextBox x:Name="tbOneTimeDataBound" FontSize="50" Text="{Binding ElementName=sliderOneTimeDataSource, Path=Value, Mode=OneTime}" Height="86" Margin="608,0,354,0"/>
    </StackPanel>
</Grid>

当源数据确定后,绑定就已经完成了。所以之后Slider再怎么改变数据,都不会影响到TextBox的内容。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值