Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在窗口之间传递参数_C#_Wpf - Fatal编程技术网

C# 在窗口之间传递参数

C# 在窗口之间传递参数,c#,wpf,C#,Wpf,我有一个带有主窗口的应用程序,可以加载文本文件并对其进行处理。处理完成后,它将创建一个网络交换机对象列表。然后,我可以对数据执行各种检查和查询。这些检查或查询使用子窗口。我一直在传递开关列表-下面是一个子窗口的示例,我修改了构造函数以获取我的开关列表。我想知道这是否是一个糟糕的设计,或者是否有一种方法可以将子窗口链接到列表中的数据,而不必传入。本项目的下一个主要步骤将是一个GUI前端,用于浏览我正在解析的所有数据,而不仅仅是运行报告。所以我现在想学着用正确的方法去做 public partia

我有一个带有主窗口的应用程序,可以加载文本文件并对其进行处理。处理完成后,它将创建一个网络交换机对象列表。然后,我可以对数据执行各种检查和查询。这些检查或查询使用子窗口。我一直在传递开关列表-下面是一个子窗口的示例,我修改了构造函数以获取我的开关列表。我想知道这是否是一个糟糕的设计,或者是否有一种方法可以将子窗口链接到列表中的数据,而不必传入。本项目的下一个主要步骤将是一个GUI前端,用于浏览我正在解析的所有数据,而不仅仅是运行报告。所以我现在想学着用正确的方法去做

 public partial class LogFileWindow : Window
{
    private ObservableCollection<LogFileEntry> _LogFileCollection = new ObservableCollection<LogFileEntry>();

    private List<CiscoSwitch> SwitchList = new List<CiscoSwitch>();

     // constructor modified to accept a list as a paramter
    public LogFileWindow(List<CiscoSwitch> sl)
    {
        SwitchList = sl;
        InitializeComponent();
    } 
。。。。。
}

看看wpf MVVM模型,就像Kent已经提到的那样。MSDN上的这篇文章是一个很好的起点:


您好,

是的。。。MVVM类型的设计很好,直到您需要在逻辑上分离的UI之间进行通信。我不得不这样做一次,这有点痛苦。我使用EventAggregator使用广播事件类型机制。@EdS。您为什么不认为MVVM是GUI间通信任务的正确模型?我个人认为,EventAggregator的设计有点过度…@MarioFraiß:我从来没有说过,我认为这是一个进步。我还认为这会使一些过去简单的问题变得更加困难,但总有一些折衷的办法。在分离UI组件时,您会使它们之间的通信变得困难,而在现实世界中,您通常需要这样的通信。谢谢。有很多东西要学,但看起来这正是我想要的。嗨,我很高兴能帮助你。