学习Winphone8.1的时候经常需要对Slider进行数据绑定后使之视觉化,方便调节Slider的值。
数据绑定分为源(Source)和目标(Target),Source一般分为两种,其他控件的数据源,或者数据对象。
而数据源的最简单的格式是:目标控件属性="{Binding ElementName=源控件名, Path=源控件属性}"或者还可以是:目标控件属性=“{Binding Source=数据源, Path=属性名}” 。其中第二种方式Source默认为DataContext,若是此属性,一般省略不写,除非不是,Path关键字一般省略,所以最简格式一般为目标控件属性=“{Binding 属性名}”。
在页面中放置一个Silder和一个TextBox,XAML代码如下:
<Grid>...</Grid>是个容器,StackPanel用于横向或者竖向排列里面的内容,Orientation翻译过来就是排列方式(取向)它的属性是Vertical(纵向)、Horizontal(横向)
<Grid> <StackPanel Orientation="Vertical"> <Slider Name="MySlider" Value="30" Minimum="0" Maximum="100" /> <TextBox Text="{Binding Mode=TwoWay, ElementName=MySlider, Path=Value}"/> </StackPanel> </Grid>
看到代码中,TextBox的Text属性的值使用了绑定,绑定的源是名为MySilder的Slider,绑定的属性是Value,意思是,TextBox的Text属性的值,来源于MySilider的Value属性的值
这里的Mode属性解释一下:Mode有三个值,即OneTime、OneWay、TwoWay,这个Binding的绑定模式与Mode有关,Binding默认的Mode是OneWay,单项绑定,也就是说Silder的Value变化时,TextBox的Text也会变,但是TextBox的Text变化时Silder的Value不会跟着变,还有两种叫做OneTime和TwoWay,OneTime是绑定一次,也就是TextBox的Text获取Silder的Value的第一个值,当Silder的Value再次变化时,TextBox的Text不会变。TwoWay是双向绑定,也就是说改变Silder的Value,TextBox的Text跟着变,改变TextBox的Text,Silder的Value也会跟着变。
结果如图:
非常简单的给Slider添加实时可视化数值,这里TextBox也可以替换成TextBlock,具体排版和布局不做详解,有问题可以提出来大家一起讨论。
之后会把学习到的都分享出来,喜欢的关注。
【程序简单知识点重要不喜勿喷】