(1)Windows Phone 7 MVVM模式通讯方式之实现Binding Data。
(2)Windows Phone 7 MVVM模式通讯方式之实现Command。
(3)Windows Phone 7 MVVM模式通讯方式之实现Attached Behavior。
下面通过一个实例实现MVVM模式的Attached Behavior通讯,Attached Behavior与Command的区别就是,Attached Behavior在控件的加载过程中完成它的任务。
下面看一下实例的运行效果:
(1)MainPage.xaml页面代码,View层
(2)Behavior.cs类代码,处理附加的属性和事件。
using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; namespace AttachedBehaviorDemo { static public class Behavior { //注册一个附加属性BrushProperty,在XAML中名字为Brush,是Brush类型,在Hover类中,PropertyMetadata初始化元数据 public static readonly DependencyProperty BrushProperty = DependencyProperty.RegisterAttached( "Brush", typeof(Brush), typeof(Behavior), new PropertyMetadata (null, new PropertyChangedCallback(OnHoverBrushChanged))); ///
///
///
public static void SetBrush(DependencyObject obj, Brush value) { obj.SetValue(BrushProperty, value); } ///
///
private static void _disibledevent=>//获取属性所在的TextBlock控件 TextBlock control = obj as TextBlock; //注册控件的事件 if (control != null) { //注册鼠标进入事件 control.MouseEnter += new MouseEventHandler(OnControlEnter); //注册鼠标离开事件 control.MouseLeave += new MouseEventHandler(OnControlLeave); } } ///
///
static void _disibledevent=>object sender, MouseEventArgs e) { //获取当前的TextBlock控件 TextBlock control = (TextBlock)e.OriginalSource; //设置控件的前景颜色为红色 control.Foreground = new SolidColorBrush(Colors.Red); } ///
///
static void _disibledevent=>object sender, MouseEventArgs e) { //获取当前的TextBlock控件 TextBlock control = (TextBlock)e.OriginalSource; //设置控件的前景颜色为当前控件的Brush属性的值 control.Foreground = GetBrush(control); } } }
最新评论