在我的项目中,我有一个longlistselector(来自Windows Phone Toolkit)。 我做了一个cutom itemtemplate到它,现在我必须区分 其中的目标元素。
例如,我有一些文字和图片。如果我点击图像我应该 启动WebBrowserTask以加载大图像。如果我点击文字我 应该加载包含完整文章的页面。
所以我需要以某种方式在ItemTemplate中或我需要的目标元素 绑定到ItemTemplate的数据。
对此有何想法?
答案 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
}