首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

用代码怎么给DataTemplate内的对象增加事件

2012-04-01 
用代码如何给DataTemplate内的对象增加事件定义一个DataTemplate:DataTemplatex:Key cjsRzfxInfoWindow

用代码如何给DataTemplate内的对象增加事件
定义一个DataTemplate:
                <DataTemplate   x:Key= "cjsRzfxInfoWindowTemplate ">    
                          <Grid>                  
                                  <HyperlinkButton   Content= "详细... "   Tag= "{Binding   [projectid]} "   Name= "firstDownLink "/>
                          </Grid>        
                </DataTemplate>

在后台使用代码如下:
private   void   getBtn()
{
          DataTemplate   pDT   =   Application.Current.Resources[m_sunInfoWindowTemplate]   as   DataTemplate;
          Grid   pGrid   =   pDT.LoadContent()   as   Grid;
          HyperlinkButton   pHBtn   =   pGrid.FindName( "firstDownLink ")   as   HyperlinkButton;//得到下载按钮
          pHBtn.Click   +=   new   RoutedEventHandler(pHBtn_Click);//注册事件
}

                private   void   pHBtn_Click(object   sender,   RoutedEventArgs   e)
                {
                        string   projectid   =   Convert.ToString((sender   as   HyperlinkButton).Tag);
                        MessageBox.Show( "文件UUID: "   +   projectid);
                }
               
为什么HyperlinkButton   pHBtn的Click事件不能获得

[解决办法]
在xaml里写datatemplate的话,可以直接注册事件。
<DataTemplate x:Key="cjsRzfxInfoWindowTemplate">
<Grid>
<HyperlinkButton Content="详细..." Click="pHBtn_Click" Tag="{Binding [projectid]}" Name="firstDownLink"/>
</Grid>
</DataTemplate>

热点排行