如何获取longlistselector selectitem itemtemplate target?

时间:2013-07-25 15:05:25

标签: c# windows-phone

在我的项目中,我有一个longlistselector(来自Windows Phone Toolkit)。 我做了一个cutom itemtemplate到它,现在我必须区分 其中的目标元素。

例如,我有一些文字和图片。如果我点击图像我应该 启动WebBrowserTask以加载大图像。如果我点击文字我 应该加载包含完整文章的页面。

所以我需要以某种方式在ItemTemplate中或我需要的目标元素 绑定到ItemTemplate的数据。

对此有何想法?

1 个答案:

答案 0 :(得分:3)

将您想要的项目绑定到模板中图像/文本块的Tag属性,然后捕获“tapped”或“mouseleftbuttondown”事件并提取项目。那样你就会知道它是哪一个。

在您的XAML中:

<DataTemplate>
   <StackPanel>
     <Image Source={Binding SourceField} Tag={Binding} MouseLeftButtonDown="myImage_MouseLeftButtonDown" />
     <TextBlock Text={Binding TextField} Tag={Binding}  MouseLeftButtonDown="myImage_MouseLeftButtonDown" />
   </StackPanel>
</DataTemplate>

在你的C#中:

private void myImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
   Image image = sender as Image;
   if (image != null && image.Tag != null && image.Tag is YourType)
   {
       YourType item = image.Tag as YourType;
      // Load the full image or browser or whatever you want
}