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

时间:2015-07-27 05:31:09

标签: c# wpf constructor user-controls caliburn.micro

我正在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吗?

1 个答案:

答案 0 :(得分:1)

Dispose方法只是另一种方法。您可以随时随地拨打电话。事实上,在你让它们超出范围之前,你应该为任何可用的一次性实例调用它。

这取决于您在构造函数的这个阶段要处理的内容。如果您已初始化任何Disposable对象,则可以对其进行处理。检查它们是否先不为空。

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

修改

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