2013-08-06 2 views
-2

У меня есть проект WPF, в котором у меня есть Resource Dictionary, где я храню свои стили. В этом словаре у меня есть ListBoxItem Template, который выглядит следующим образом.Добавить свойство Name в каждом элементе ListBox.

<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> 

Теперь то, что я хочу сделать, это, читать изображения 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(??????); 
    } 
} 
+0

Нет комментариев, объясняющих downvotes? –

+0

Nope.Nothing вообще. – oimitro

+0

Может быть, потому что нет вопросов? – Pacane

ответ

0

ОК выяснил. Мне просто нужно было захватить 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()); 
    } 
} 
Смежные вопросы