在每个ListBox项中添加Name属性
本文关键字:添加 Name 属性 ListBox | 更新日期: 2023-09-27 18:26:44
我有一个WPF项目,其中有一个Resource Dictionary
,用于存储我的样式。在这本字典里,我有一个ListBoxItem Template
,看起来像这样。
<DataTemplate x:Key="GenreStyle">
<Grid Width="150" Height="150" Background="Transparent">
<Image x:Name="GenreImage" Tag="{Binding Genre}" RenderOptions.BitmapScalingMode="HighQuality" Source="{Binding GenreSource}" Width="140" Height="140" MouseEnter="GenreImage_MouseEnter" MouseLeave="GenreImage_MouseLeave" MouseLeftButtonDown="GenreImage_MouseLeftButtonDown" MouseLeftButtonUp="GenreImage_MouseLeftButtonUp"/>
</Grid>
</DataTemplate>
现在我想做的是,当我点击每个项目时,阅读Images Tag
。我现在做的是:
private void StationsListLB_PreviewMouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var item = ItemsControl.ContainerFromElement(StationsListLB, e.OriginalSource as DependencyObject) as ListBoxItem;
if (item != null)
{
MessageBox.Show(??????);
}
}
Ok想明白了。我只需要捕捉System.Windows.Input.MouseButtonEventArgs
。然后很简单:
private void StationsListLB_PreviewMouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var item = ItemsControl.ContainerFromElement(StationsListLB, e.OriginalSource as DependencyObject) as ListBoxItem;
if (item != null)
{
var opa = e.OriginalSource as System.Windows.Controls.Image;
MessageBox.Show(opa.Tag.ToString());
}
}