【发布时间】:2014-01-21 23:20:29
【问题描述】:
我有一个列表框,它绑定到一个包含两个元素的对象列表:一个字符串和一个图像
我想检测用户是否点击了图像或文本块
这是我尝试过的:
这是我的 xaml:
<ListBox x:name = "TheList" ItemSource ="{Binding List}" SelectionChanged="SelectionChanged_1">
<DataTemplate>
<TextBlock Text = "{Binding Name}" />
<Image ImageSource = "{Binding Picture}" />
<StackPanel>
<\StackPanel>
<\DataTemplate>
</ListBox>
这是我的代码:
private void SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
if (TheList.SelectedItem != null)
{
if(e.OriginalSource == sender as TextBox ){
MessageBox.Show("Text");
} else if(e.OriginalSource == sender as Image ){
MessageBox.Show("Image");
}
}
}
但如果我点击 MessageBox 显示“文本”的图像,它不起作用
如何检测图像或文本块是否被点击?
【问题讨论】:
-
sender将成为ListBoxItem,我想。试试if (e.OriginalSource is TextBlock)等 -
不,它不工作,现在它既没有检测到文本块也没有检测到图像
-
你是对的,抱歉 - 看起来原始来源被 SelectionChanged 事件吞噬了。您可能需要考虑在
Image和TextBlock上分别添加Tap事件。
标签: c# .net xaml windows-phone-8 windows-phone