请问silverlight使用mvvm light如何绑定一个Behavior中的事件

juezhao007 2013-07-30 04:25:43
下面是我自己写的behavior 有两个事件LeftFlick和RightFlick

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Input;
using System.Windows.Interactivity;

namespace CardsChina.Behavior
{
public class CustomLRFlickAction : Behavior<UIElement>
{
protected bool MouseDown { get; set; }
Point? downPoint;
//左滑事件
public event EventHandler LeftFlick;
//右滑事件
public event EventHandler RightFlick;
public double MinOffsetProperty
{
get { return (double)GetValue(MinOffsetPropertyProperty); }
set { SetValue(MinOffsetPropertyProperty, value); }
}

// Using a DependencyProperty as the backing store for MaxOffsetProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MinOffsetPropertyProperty =
DependencyProperty.Register("MinOffsetProperty", typeof(double), typeof(CustomLRFlickAction), new PropertyMetadata(20.0));

protected override void OnAttached()
{
base.OnAttached();

this.AssociatedObject.MouseLeftButtonDown += AO_MouseLeftButtonDown;
this.AssociatedObject.MouseLeftButtonUp += AO_MouseLeftButtonUp;
}

protected override void OnDetaching()
{
this.AssociatedObject.MouseLeftButtonDown -= AO_MouseLeftButtonDown;
this.AssociatedObject.MouseLeftButtonUp -= AO_MouseLeftButtonUp;

base.OnDetaching();
}
protected virtual void AO_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (!MouseDown)
{
MouseDown = false;
return;
}
var upPoint = e.GetPosition(null);
if (!downPoint.HasValue)
{
MouseDown = false;
return;
}
var offset = new Point(upPoint.X - downPoint.Value.X, upPoint.Y - downPoint.Value.Y);
System.Diagnostics.Debug.WriteLine("之前点---->{0}", downPoint);
System.Diagnostics.Debug.WriteLine("之后点---->{0}", upPoint);
System.Diagnostics.Debug.WriteLine(offset);
if (offset.Y > MinOffsetProperty)
{
OnRightFlick();
MouseDown = false;
return;
}
if (offset.Y <-MinOffsetProperty)
{
OnLeftFlick();
MouseDown = false;
return;
}
MouseDown = false;
}

protected virtual void AO_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MouseDown = true;
downPoint = e.GetPosition(null);
System.Diagnostics.Debug.WriteLine("之前点---->{0}", downPoint);
}

protected virtual void OnLeftFlick()
{
if (LeftFlick != null)
{
LeftFlick(this.AssociatedObject, EventArgs.Empty);
}
}
protected virtual void OnRightFlick()
{
if (RightFlick != null)
{
RightFlick(this.AssociatedObject, EventArgs.Empty);
}
}
}
}
请问大家 现在我要在Xaml中和viewModel中如何才能实现如触发LeftFlick事件绑定相应方法呢?

我现在在xaml中是如下写的 但是没用
<Rectangle Fill="Blue" Width="400" Height="200" Margin="28,397,28,10">
<i:Interaction.Triggers>
<i:EventTrigger EventName="LeftFlick">
<i:InvokeCommandAction Command="{Binding LeftAnimation}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Rectangle>
...全文
117 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
juezhao007 2013-07-30
  • 打赏
  • 举报
回复
自己顶一下吧。。都沉了
内容概要:本文系统研究了基于监督学习的多模态MRI脑肿瘤分割方法,重点聚焦于利用监督体素的纹理特征实现肿瘤区域的精确识别。文章首先阐述了监督学习的基本原理及多模态MRI在医学影像分析的独特优势,进而深入探讨了灰度共生矩阵(GLCM)、局部二值模式(LBP)和小波变换等多种纹理特征提取技术。在此基础上,构建了基于传统特征工程的分类器模型以及融合深度学习的混合模型,并通过在公开数据集上的实验验证其分割性能,采用Dice系数、敏感度、特异度等指标进行全面评估。研究还剖析了当前面临的关键挑战,如高质量标注数据稀缺、模型泛化能力受限、可解释性不足以及肿瘤边界模糊等问题,进一步提出了结合半监督学习、多任务学习、模型可解释性增强及多模态信息深度融合等未来发展方向,为提升脑肿瘤自动分割的精度与临床实用性提供了系统的理论依据和技术路径。; 适合人群:具备医学图像处理或机器学习基础知识,从事生物医学工程、人工智能辅助诊断、计算机视觉等相关领域的科研人员及研究生。; 使用场景及目标:①掌握多模态MRI脑肿瘤分割的关键技术流程与核心算法;②深入理解监督体素与纹理特征在医学图像分割的具体应用价值;③为研发高精度、强可解释性的自动化脑肿瘤分割系统提供方法参考与技术支持。; 阅读建议:建议结合提供的Matlab代码实现同步学习,重点关注纹理特征提取与模型构建部分,动手复现实验过程以深化理解,同时重视数据预处理与结果评估环节,全面提升科研实践与创新能力。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧