我正在构建一个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();
}
每次我点击任何用户,然后新的聊天窗口都会被打开。我需要知道在创建聊天窗口的新实例之前我可以检查的条件(如果尚未创建和打开)。请建议。< / p>
答案 0 :(得分:3)
您可以迭代当前窗口以确定是否存在。
var window = Application.Current.Windows.OfType<UserPersonalChatWindow>()
.FirstOrDefault(x => x.StaffUserId.Content == id);