2012-02-15 65 views
1

我需要在列表框項目模板中選擇已更改的事件。我的列表框由三個文本塊和一個圖像組成。我只想得到第三個文本塊文本,當我選擇第三個文本塊時,文本塊中的文本將顯示爲一個彈出窗口。列表框中itemtemplate中的Selecteditem事件

我使用可視化樹來搜索文本塊,但它取第一個文本塊的值而不是第三個文本塊。我能做些什麼來獲得第二和第三個文本塊的價值。我只需要點擊列表框中的文本框而不是整個列表框項時,就需要觸發一個彈出窗口。

<ListBox Name="listBox1" Width="Auto" SelectionChanged="Listbox1_SelectionChanged"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <Image Height="165" HorizontalAlignment="Left" Margin="10,40,-400,0" VerticalAlignment="Top" Width="175" Source="{Binding thumb}"/> 
       <TextBlock Name="pagetext" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="195,-135,-200,0" Text="{Binding page}" Foreground="#FF170101" /> 
       <TextBlock Name="titletext" Width="1000" TextWrapping="NoWrap" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="195,-167,-200,0" Text="{Binding title}" Foreground="#FF170101" /> 
       <TextBlock Name="text" Width="1000" TextWrapping="NoWrap" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="195,-167,-200,0" Text="{Binding title}" Foreground="#FF170101" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

回答

1

使用TextBlock_MouseLeftButtonUp或TextBlock_Tap(這是上升時點擊文本塊)

在此,

private void TextBlock_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
    { 
     TextBlock t = (TextBlock)sender; 
     string s= t.Text; 
    } 

上述字符串s DISPLY你想去的地方。

+0

感謝帕其工作正常,我... – 2012-02-15 06:54:19

+0

你忘了投給我? – Pavan 2012-02-15 08:57:24

+0

對不起pavan我沒有足夠的信譽投票 – 2012-02-15 09:05:16

1

您應該將TextBlock置於Button或將Hyperlink添加到它。兩者都支持命令並有一個Click事件。 (爲了使Button invisble可以覆蓋Template是一個簡單的ContentPresenter只)

<Button> 
    <Button.Template> 
     <ControlTemplate TargetType="Button"><ContentPresenter/></ControlTemplate> 
    </Button.Template> 
    <TextBlock .../> 
</Button> 
<TextBlock> 
    <!-- In SL you probably need a Run inside the Hyperlink and it may not be bindable --> 
    <Hyperlink Text="{Binding title}" .../> 
</TextBlock> 
相關問題