取消UserControl的初始化或在构造函数中处置它

本文关键字:构造函数 UserControl 初始化 取消 | 更新日期: 2023-09-27 18:04:42

我正在WPF应用程序中创建一个UserControl对话框。下面是它的构造函数:

public ExcelExportView()
{
  InitializeComponent();
  // some stuffs here.
  // IsCancelled may got the value true/false
  if (IsCancelled)
  {
    // is there anyway to dispose the UserControl here?
  }
}

这里我使用Caliburn.Micro来引导我的应用程序并创建视图。

所以问题是:在构造它的中间是否有处理UserControl的方法?

取消UserControl的初始化或在构造函数中处置它

Dispose方法只是另一种方法。你可以随时随地打电话给它。实际上,您应该在让任何可用的一次性实例超出作用域之前调用它。

这取决于你想在构造函数的这个阶段Dispose什么。如果初始化了任何Disposable对象,则可以Dispose它们。先检查它们是否为空。

话虽如此,这个代码/设计对我来说并不好闻。

编辑

UserControl默认情况下不是Disposable的,因为没有任何可丢弃的对象。当你有一个包装非托管资源的类,或者当你的类有一个实现IDisposable的字段时,实现IDisposable。