Silverlight DataBinding Converter:根据binding对象调整显示
来源:互联网 发布:可以领淘宝优惠券的群 编辑:程序博客网 时间:2024/05/21 17:16
Silverlight DataBinding Converter:根据binding对象调整显示
目录(?)[+]
- 首先定义显示界面
- 让Image binding到slider value
- slider value转化到imagesource string
- 在xaml中引入converter
我希望写一系列关于Silverlight DataBinding的文章,分别讲解Silverlight Binding中不同的功能。本文将会讲的是DataBinding中使用Converter。演示的demo是根据值显示一个小图标,当slider数值小于50的时候,显示绿色,当数值大于等于50时,显示红色。
本文中所有代码都可以在github中查看,git版本中采用了master-dev的方式。在master中可以查看每一个demo的最后完成,在dev中可以查看每一步的代码。
github地址:git@github.com:kiwiwin/silverlight-demo.git。文件夹名称databinding-converter-demo
1.首先定义显示界面
- <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
- <Slider Height="23" HorizontalAlignment="Left" Width="120" Name="slider" VerticalAlignment="Center"
- Minimum="0" Maximum="100" />
- <Image Height="30" Width="30" Margin="5,0,0,0"
- Source="Images/green.png" />
- </StackPanel>
注意Image中的Source值为Images/green.png,只是因为我在Images下面放置了两个图片green.png和red.png作为演示用
2.让Image binding到slider value
这里需要首先让Image的Sourcebinding到Slider的Value上,ElementName赋值为slider,就让slider成为Image source的binding source,然后将Path赋值为Value,即binding到slider的Value属性上。
Source="{Binding ElementName=slider,Path=Value}"
3.slider value转化到imagesource string
Source需要的是一个字符串指向图片的来源,而slider.Value只是一个double型的属性,这就需要进行转换,就用到了databinding中的converter属性。
首先,添加一个类,用于作转换:
- namespace databinding_converter_demo
- {
- public class ColorToPicture : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
- {
- double num = (double)value;
- return num < 50 ? "Images/green.png" : "Images/red.png";
- }
- public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
- {
- throw new NotImplementedException();
- }
- }
- }
实现binding转换需要实现一个类,实现IValueConverter接口,而IValueConverter定义了两个接口,Convert和ConvertBack,Convert用于讲source转换成target的binding转换,而ConvertBack反之。因为这里我们不需要ConvertBack,所以不实现它。
4.在xaml中引入converter
在xaml中添加一个local的namespace。并且定义UserControl.Resources指明ColorToPicture
- <span style="font-family: SimSun;"> mlns:local="clr-namespace:databinding_converter_demo"
- <UserControl.Resources>
- <local:ColorToPicture x:Key="ColorToPicture" />
- </UserControl.Resources>
- </span>
注意local:ColorToPicture的key是ColorToPicture
再修改Image Source:
- <Image Height="30" Width="30" Margin="5,0,0,0" Source="{BindingElementName=slider, Path=Value, Converter={StaticResource ColorToPicture}}" />
显示结果:
slider小于50:
slider大于50:
- Silverlight DataBinding Converter:根据binding对象调整显示
- Silverlight DataBinding Converter:根据binding对象调整显示
- WPF Converter 根据性别显示图片
- Databinding在各种场景下拿到binding对象
- Silverlight Binding
- silverlight系列(DataBinding、DataGrid)
- 根据浏览器的大小,自动调整Silverlight的大小
- Android根据可显示宽度调整字体大小
- Silverlight 数据绑定(Binding)
- silverlight:Element Data Binding
- Silverlight 数据绑定(Binding)
- Silverlight 4 Binding Cheatsheet
- Windows phone 8 ---Binding.Converter Property
- Binding的数据转换(Data Converter)
- Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)
- Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据
- Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据
- Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)
- VS2010+OpenCV2.4.6永久性配置方法
- Oracle数据类型之number
- mybatis中的mapper接口文件以及example类的实例函数以及详解
- JAVA中int、String的类型转换
- Java 枚举类型使用思考
- Silverlight DataBinding Converter:根据binding对象调整显示
- Linux 下没有conio.h 已解决
- iOS学习之Tab Bar的使用和视图切换
- 布局优化
- Kinect小小玩偶游戏----小小潜水员
- 酒香也怕巷子深,网站布局带你走出排名深巷
- 玩命牛的成长记录(七)——切换
- ios中通过UIDocumentInteractionControllers调用第三方应用打开本地压缩文件
- 【Android基础篇】TabHost实现底部导航栏