WPF Xaml设计器-在设计时处理资源

本文关键字:处理 资源 Xaml WPF | 更新日期: 2023-09-27 18:02:58

我有一个WPF窗口,里面有一些创建TCP连接的资源:

<HMIDesign:HMIBaseWindow.Resources>
    <DataSource:MyDataSource x:Key="DataCtx1" />
</HMIDesign:HMIBaseWindow.Resources>

但是当我关闭承载表单的设计器窗口时,连接保持打开状态,因此,如果我再次打开表单,将启动一个新的TCP连接。

在这种情况下如何处理断开连接?

WPF Xaml设计器-在设计时处理资源

应该可以使用Window的Closing Event来实现。

    private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        if (Resources.Contains["DataCtx1"])
        {
            MyDataSource dataSource = Resources["DataCtx1"] as MyDataSource;
            if (dataSource != null)
            {
                dataSource.Close();
            }
        }
    }