如何获取长列表选择器selecteditem项目模板目标

本文关键字:selecteditem 选择器 项目 目标 列表 何获取 获取 | 更新日期: 2023-09-27 18:25:05

在我的项目中,我有一个长列表选择器(来自Windows Phone Toolkit)。我为它制作了一个剪贴项目模板,现在我必须区分

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

所以我需要ItemTemplate中的目标元素,或者我需要绑定到该ItemTemplate的数据。

对此有什么想法吗?

如何获取长列表选择器selecteditem项目模板目标

将您想要的项目绑定到模板中image/textblock的Tag属性,然后捕获"taped"或"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
}