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

请教ItemTemplate定义在资源文件中,怎么使ItemTemplate中的UIElement关联事件处理方法

2012-03-28 
请问ItemTemplate定义在资源文件中,如何使ItemTemplate中的UIElement关联事件处理方法?问题描述:Test.xaml

请问ItemTemplate定义在资源文件中,如何使ItemTemplate中的UIElement关联事件处理方法?
问题描述:
Test.xaml中有一个ListBox,简单定义如下:

XML code
<ListBox Name = "listBox" ItemTemplate = "{StaticResource ListBoxItemTemplate}"/>


ListBoxItemTemplate定义如下:(定义在在资源文件中,而没定义在Test.xaml中的ListBox下)
XML code
<DataTemplate x:Key = "ListBoxItemTemplate"> <StackPanel>  <Button Name="myBtn"/>  <Text Text = {Binding}/> </StackPanel></DataTemplate>


需求:
需要再ListBox中,点击Button时候能做出相应,但是由于ItemTemplate定义在资源文件中,所以无法为Button的Click关联事件处理方法,请问如何解决?

备注:
如果定义改为:
XML code
<ListBox Name = "listBox"> <ListBox.ItemTemplate>   <DataTemplate x:Name = "ListBoxItemTemplate">    <StackPanel>     <Button Name="myBtn" Click="OnClick"/>     <Text Text = {Binding}/>    </StackPanel>   </DataTemplate> </ListBox.ItemTemplate></ListBox>

这样,就可以在Test.xaml.cs中实现Button的事件处理方法,但是这样的话,Test.xaml就很臃肿,而且无法在其他地方重用,请问如何解决? 谢谢

[解决办法]
XML code
<DataTemplate x:Key = "ListBoxItemTemplate"> <StackPanel>  <Button Name="myBtn" Command={Binding yourCommand}/>  <Text Text = {Binding}/> </StackPanel></DataTemplate>
[解决办法]
那直接在Click事件中写方法,这样不行吗
[解决办法]
加了个Click就叫臃肿了?而且DataTemplate本身就不为重用打算的,多个ListBox使用同一个DataTemplate那才叫奇怪了呢。

热点排行