【发布时间】:2009-12-10 07:36:46
【问题描述】:
我想知道是否可以轻松构建ListBox 的双击功能。我有一个ListBox,其集合为ItemSource。该集合包含自己的数据类型。
<ListBox ItemsSource="{Binding Path=Templates}"
ItemTemplate="{StaticResource fileTemplate}">
我为我的Items 定义了一个DataTemplate,它由StackPanels 和TextBlocks 组成。
<DataTemplate x:Key="fileTemplate">
<Border>
<StackPanel>
<TextBlock Text="{Binding Path=Filename}"/>
<TextBlock Text="{Binding Path=Description}"/>
</StackPanel>
</Border>
</DataTemplate>
现在我想检测双击列表项的双击事件。目前我尝试了以下操作,但它不起作用,因为它不会返回绑定到 ListBox 而是 TextBlock 的项目。
if (TemplateList.SelectedIndex != -1 && e.OriginalSource is Template)
{
this.SelectedTemplate = e.OriginalSource as Template;
this.Close();
}
如果图标不是ListBoxItems,而是拥有DataTemplates,那么在ListBox 中处理item 上的双击事件的干净方法是什么?
【问题讨论】:
标签: c# wpf events event-handling listbox