窗口打开时锁定菜单项,关闭时解锁

本文关键字:解锁 锁定 窗口 菜单项 | 更新日期: 2023-09-27 18:23:47

我有一个窗口,我想一次只允许打开它的一个实例。他们可以打开/关闭窗口,但不能同时打开同一窗口的多个副本。

我有一个菜单,其中有一个选项,单击后会打开"产品选择"窗口。ListProductList是我的按钮:

private void ListProductListCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
  e.CanExecute = _productListCanExecute;
  //_productListCanExecute = !_productListCanExecute;
}
private void ListProductList(object sender, ExecutedRoutedEventArgs e)
{
  _productListCanExecute = false;
  ProductSelection pl = new ProductSelection(productCategoryList, productStyleList, productList);
  pl.Show();
}

请注意,我将ListProductList按钮的e.CanExecute设置为false,以确保事件处理程序不会运行,因此不会打开更多窗口。

现在,我如何检测到ProductSelection窗口已经关闭,以便将_productListCanExecute设置回true?这不是一个模态窗口,因为我想让他们做其他事情。

窗口打开时锁定菜单项,关闭时解锁

这里最简单的解决方案可能是将pl变量设置为全局变量。

每当单击该按钮时,只需"显示"现有窗口即可。