彩票走势图

MVVM模式下附加属性的使用

转帖|其它|编辑:郝浩|2011-04-13 14:06:46.000|阅读 797 次

概述:最近开发的一个项目中我们使用了微软模式实践小组的Prism框架(后续会发布一些学习心得),该框架提供了MVVM模式的一种实践方式。在MVVM模式中View的事件的响应一般通过Command可以实现,在无法使用Command实现时也可以使用附加属性(Attached Properties)实现。下面贴一段代码,用来响应ListView的拖放事件。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  最近开发的一个项目中我们使用了微软模式实践小组的Prism框架(后续会发布一些学习心得),该框架提供了MVVM模式的一种实践方式。在MVVM模式中View的事件的响应一般通过Command可以实现,在无法使用Command实现时也可以使用附加属性(Attached Properties)实现。下面贴一段代码,用来响应ListView的拖放事件。

  在ViewModel中定义附加属性:

public static bool GetHandleDragEvent(DependencyObject obj)
         {
             return (bool)obj.GetValue(HandleDragEventProperty);
         }

         public static void SetHandleDragEvent(DependencyObject obj, bool value)
         {
             obj.SetValue(HandleDragEventProperty, value);
         }

         // Using a DependencyProperty as the backing store for HandleDragEvent.  This enables animation, styling, binding, etc...
         public static readonly DependencyProperty HandleDragEventProperty =
             DependencyProperty.RegisterAttached( "HandleDragEvent", typeof(bool),
             typeof(***), new UIPropertyMetadata(false, OnHandleDragEvent));

 
         private static void OnHandleDragEvent(DependencyObject d, DependencyPropertyChangedEventArgs e)
         {。。。} 

在View中添加TreeView控件:

<Style x:Key="TreeView" TargetType="TreeView" >
             <Setter Property="viewmodels:***.HandleDragEvent" Value="True" />
             <Setter Property="AllowDrop" Value="True" />
</Style>


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP