基于Cairngorm的Silverlight开发 - part4

2018-03-01 18:52:29 浏览数 (1)

通过绑定用视图来管理ModelLocator  

由于绑定是双向的,所以在绑定到一些可以操作其自身属性的的控件时,对ModelLocator也是有影响的。这里把上边事例中的颜色的RGB值分别绑定到三个Slider控件上。

public ColorConfig()         {             InitializeComponent();             this.Loaded  = new RoutedEventHandler(ColorConfig_Loaded);         }         void ColorConfig_Loaded(object sender, RoutedEventArgs e)         {             ByteConverter bc=new ByteConverter();             this.DataContext = BackGroundModel.Instance;             Binding bindR = new Binding("R");             bindR.Mode = BindingMode.TwoWay;             bindR.Converter = bc;             xRSlider.SetBinding(Slider.ValueProperty, bindR);             Binding bindG = new Binding("G");             bindG.Mode = BindingMode.TwoWay;             bindG.Converter = bc;             xGSlider.SetBinding(Slider.ValueProperty, bindG);             Binding bindB = new Binding("B");             bindB.Mode = BindingMode.TwoWay;             bindB.Converter = bc;             xBSlider.SetBinding(Slider.ValueProperty, bindB);         }

这里用到了一个数据值的转换,有时需要把一个图片绑定到控件上,但是只有图片的Uri是不行的,要做一步转换。我给出的代码片段都是最简单的。

public class ByteConverter:IValueConverter     {         public object Convert(             object value,             Type targetType,             object parameter,             CultureInfo culture)         {             int b = System.Convert.ToInt32(value);             return (byte)b;         }         public object ConvertBack(             object value,             Type targetType,             object parameter,             CultureInfo culture)         {             byte b = System.Convert.ToByte(value);             return (int)b;         }      }

到这里就和上一篇形成了一个完整的demo了,Demo预览。 送上视频 :) ViewManagerP2.wmv 【代码下载】

基于Cairngorm的Silverlight开发 - part3

0 人点赞