SilverLight用户控件中自定义事件

最近做一个简单的树型结构,需要做成用户控件,但是TreeView已经形成之后,在其它地方调用这个用户控件时,本来TreeView应该有的事件却没有了,比如Unchecked,Checked事件,在下面的XMAL代码段中没有这些事件,其实可以在用户控件中实现这些事件,但是有些东西不能在用户控件中实现,只能在调用方实现。


<local:ResourceCategoryTree x:Name="RadTreeView1"></local:ResourceCategoryTree>

     经过一个小时的摸索,终于搞定了,实现方法如下
     1、首先在用户控件中声明需要的事件,比如Unchecked事件,如下代码
      

public event Telerik.Windows.RadRoutedEventHandler Unchecked;

     2、在用户控件中,实现TreeView自带的Unchecked,代码如下:
          

private void rtv_Unchecked(object sender, Telerik.Windows.RadRoutedEventArgs e)

{

//触发自定义事件

if (Unchecked != null)

{

Unchecked(sender, e);

}

}

      3、就可以在调用方实现Unchecked事件了,可以在XAML中实现,也可以在后台代码中实现,如下代码,在后台实现
         

RadTreeView1.Unchecked+=new Telerik.Windows.RadRoutedEventHandler(RadTreeView1_Unchecked);

       4、下面代码为实现的方法
      



private void RadTreeView1_Unchecked(object sender, Telerik.Windows.RadRoutedEventArgs e)

{

//在此事件代码就可以了

}
经过以上几个步骤,就可以实现用户控件中自定义的控件在调用方的实现
另外声明:我用的TreeView控件是一个第三方控件,如果你们用微软系统自带的控件,改变一下命名空间和类就可以了
原文地址:https://www.cnblogs.com/888h/p/1815975.html