如何在窗口之间传输控制信息

时间:2014-10-14 02:41:42

标签: c# wpf

我想知道如何在WPF中的窗口之间传输多个信息。

到目前为止,我有这个:

主要形式:

string path = @"C:\";
private void preview_Click(object sender, RoutedEventArgs e) {
        preview newWindow = new preview(Path);
        newWindow.Show();
    }

预览表格:

public preview(string _path) {
        InitializeComponent();
        Path = _path;                 
    }

但这只允许我一次发送一条信息。我如何一次发送多个信息?

2 个答案:

答案 0 :(得分:2)

好吧,如果您坚持使用该特定设计,那么您可以使用classstruct发送信息,而不是string

preview newWindow = new preview(data);

public preview(CustomData data) { ... }

如果构造函数接受多个参数,则只传递多个参数:

preview newWindow = new preview(path, somethingElse, somethingMore);

public preview(string path, int somethingElse, int somethingMore) { ... }

如果我经常使用某种数据集合,我更喜欢保持良好和紧张,这就是我推荐classstruct的原因。但是,如果信息片段除了被传递在一起之外没有彼此特别的关系,那么多个参数方法就可以正常工作。

答案 1 :(得分:1)

您可以在预览类的三参数构造函数中传递三个值。

    string path = @"C:\";
    private void preview_Click(object sender, RoutedEventArgs e) {
            preview newWindow = new preview(1,"string1","String2");
            newWindow.Show();
        }

    The preview form:
    int a;
    string b;
    string c;

    public preview(int _a, string _b, string _c) 
{
            InitializeComponent();
                   this.a=_a;
                   this.b=_b;
                   this.c=_c;  
        }

如果您必须将更多值传递给预览表单,我建议您创建一个DTO类,其中包含您要传递给预览表单的所有值。在mainform上创建DTO类的实例并根据需要设置值并将此DTO类传递给预览表单,在预览表单上,您可以拥有一个将接受此dto类的custructor。