2013-06-12 125 views
2

因此,我在ListboxItemTemplateDataTemplate中使用了一個按鈕。任何想法如何從按鈕點擊抓取Listbox項目的索引?我看不到按鈕的父母。從按鈕中獲取列表框項目索引單擊

<ListBox.ItemTemplate> 
      <DataTemplate DataType="{x:Type local:Img}"> 
       <Button Click="lstButton_Click">... 
+0

是,當你點擊按鈕選擇的項目? –

+0

不選擇索引更改事件不會觸發。 – windowskm

+0

您可以使用ICommand而不是ClickEvent,然後您可以將實際Item傳遞爲CommandParameter,或者將Buttons Tag屬性設置爲Item並從事件處理函數中訪問Button Tag屬性 –

回答

0

你可以在你的視圖模型添加Index屬性,並設置它,當你添加視圖模型對象到您的收藏。然後你可以在你的事件處理程序中訪問它。

private void lstButton_Click(object sender, RoutedEventArgs e) 
    { 
     Img t = (sender as Button).DataContext as Img 
     //Access t.Index here 
    } 
9
 private void lstButton_Click(object sender, RoutedEventArgs e) 
    { 
       Button button = sender as Button;   
       int index = _myListBoxName.Items.IndexOf(button.DataContext); 
//or try this 
       index = _myListBoxName.ItemContainerGenerator.IndexFromContainer(button.DataContext); 
    } 
相關問題