2016-03-05 30 views
0

我在Visual C#代碼一個ListView也實現在一行雙擊偵聽器。雙擊後顯示顯示該行(在這種情況下,ID)的列值之一。的ListView所選行的列值

這裏是XAML代碼:

<ListView x:Name="myList" 
      Height="334" 
      HorizontalAlignment="Left" 
      Margin="10,62,0,0" 
      VerticalAlignment="Top" 
      Width="630" Grid.ColumnSpan="2" 

       > 
     <ListView.View > 
      <GridView> 
       <GridViewColumn x:Name="id" Width="35" Header="Id" DisplayMemberBinding="{Binding Path=id}" ></GridViewColumn> 
       <GridViewColumn Width="100" Header="Name" DisplayMemberBinding="{Binding Path=name}"></GridViewColumn> 
       <GridViewColumn Width="100" Header="Address" DisplayMemberBinding="{Binding Path=address}"></GridViewColumn> 
       <GridViewColumn Width="100" Header="Mobile" DisplayMemberBinding="{Binding Path=mobile}"></GridViewColumn> 
       <GridViewColumn Width="100" Header="Date" DisplayMemberBinding="{Binding Path=date}"></GridViewColumn> 
       <GridViewColumn Width="100" Header="Price" DisplayMemberBinding="{Binding Path=price}"></GridViewColumn> 
       <GridViewColumn Width="100" Header="Warranty" DisplayMemberBinding="{Binding Path=warranty}"></GridViewColumn> 
      </GridView> 
     </ListView.View> 
    </ListView> 

和C#代碼:

public view_all() 
    { 
     InitializeComponent(); 

     myList.MouseDoubleClick += new MouseButtonEventHandler(list_MouseDoubleClick); 



    } 

    private void list_MouseDoubleClick(object sender, RoutedEventArgs e) 
    { 
     if (myList.SelectedItem != null) 
     { 
      string selectedItem = myList.Items[myList.SelectedIndex].ToString(); 

      MessageBox.Show(selectedItem); 
     } 
    } 

在點擊消息框顯示 'System.Data.DataRowView'。該消息應該是該行的ID。

回答

0

所以,一個ListItem是一個容器,如果沒記錯的話,那麼它應該有一個隱含的。內容屬性,你可以把你的手指並達成裏面是什麼。

現在,因爲你沒有做到這一點,是告訴你容器的基本類型,你的價值裏面

嘗試訪問myList.Items [myList.SelectedIndex] .Content.ToString()

(或類似的東西,我不是附近的一個開發環境,現在),這將幫助您定位正確的事情。

希望幫助你:)

0

這裏的子項取決於什麼你列在列表視圖ID爲。

string selectedItem = myList.SelectedItems[0].SubItems[1].Text;