2016-08-21 82 views
1

我有一個窗口打開時動態創建的對象列表。例如:Wpf listview item object doubleclick

//Set content for listview sentitems 
    List<email> _sentmails = _dataDC.emails.Where(u => u.from == _username).OrderByDescending(x => x.time).ToList(); 
    inbox.ItemsSource = _sentmails; 

我的XAML:

<TabItem Header="Inbox" Height="30"> 
     <TabItem.Content> 
      <ListView Name="inbox" BorderThickness="2" Margin="5,0,-5,0" > 
       <ListView.View > 
        <GridView> 
         <GridViewColumn Header="Van" Width="70" DisplayMemberBinding="{Binding from}" /> 
         <GridViewColumn Header="Onderwerp" Width="120" DisplayMemberBinding="{Binding subject}" /> 
         <GridViewColumn Header="Op" Width="130" DisplayMemberBinding="{Binding time}" /> 

        </GridView> 
       </ListView.View> 
      </ListView> 
     </TabItem.Content> 
    </TabItem> 

當在列表中的項目是doubleclicked,我只是想打開一個新窗口。對象被傳遞到新窗口,我在那裏做一些事情。任何簡單解決方案

回答

1

嘗試了這一點...

XAML

<ListView Name="inbox" BorderThickness="2" Margin="5,0,-5,0" MouseDoubleClick="inbox_OnMouseDoubleClick"> 

C#

private void inbox_OnMouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) 
{ 
    // Assumes your NewWindow class has a constuctor that takes the Email type. 
    NewWindow window = new NewWindow((Email)inbox.SelectedItem); 
    window.Show(); 
} 
+0

這與我發佈的答案有什麼不同? – Sajeetharan

+0

我編輯了你的帖子,以反映我的帖子。 –

+0

@gegnis,它只是即使是錯的 – Sajeetharan

1

使用ListView的MouseDoubleClick。

XAML:

<ListView Name="inbox" BorderThickness="2" Margin="5,0,-5,0" MouseDoubleClick="ListView_MouseDoubleClick"> 

代碼背後:

private void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
{ 
     var item = (sender as ListView).SelectedItem; 
     if (item != null) 
     { 
      //use the item here and pass to the new window 
      NewModal s = new NewModal(Email)item); 
     } 
} 
+0

雖然這是一個單擊,不是嗎?這將是一個雙擊:3 – user3117628

+0

@ user3227070是的,你可以有 – Sajeetharan

+0

對不起,我收到一個錯誤,說它不能將類型從對象轉換爲電子郵件。我將編輯我的問題,一秒鐘 – user3117628