2014-12-30 98 views
1

我正在構建一個WPF聊天應用程序。 當用戶從聊天列表中點擊用戶名時,我正在打開一個新的聊天窗口。 如果用戶在聊天列表中單擊另一個用戶名,則聊天窗口的新實例將被打開。這裏的問題是如何檢查用戶聊天窗口是否已打開以添加傳入聊天。 是否有與每個窗口關聯的唯一ID?如果是,那我該如何檢查該特定窗口是否打開。識別一個窗口實例是否已經打開

代碼當用戶點擊用戶名創建聊天窗口的新實例:

private void UsersChatWith_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
{ 
    if (UsersChatWith.SelectedItem != null) 
    { 
     var SelItm = UsersChatWith.SelectedItem; 
     ChatToUserid = ((UserDetail)(SelItm)).UserId; 
     ChatToUserName = ((UserDetail)(SelItm)).User_FirstName; 
    } 
    // UserPersonalChatPopUp.IsOpen = true; 
    UserPersonalChatWindow chatwin = new UserPersonalChatWindow(); 
    chatwin.Title = ChatToUserName; 
    chatwin.StaffUserId.Content = ChatToUserid; 
    chatwin.Show(); 
} 

這裏每次我點擊任何一個用戶,然後新的聊天窗口得到opened.I需要知道,我可以檢查車況在創建聊天窗口的新實例之前(如果尚未創建並打開)。請建議。

回答

3

您可以遍歷當前的窗口來確定是否存在或不存在。

var window = Application.Current.Windows.OfType<UserPersonalChatWindow>() 
.FirstOrDefault(x => x.StaffUserId.Content == id); 
相關問題