WPF как выставить собственный объект в другом окне - PullRequest
2 голосов
/ 21 ноября 2010

У меня есть эта проблема. Я создаю две секции своих классов в главном окне. Мне нужно создать другое ведомое окно в коде позади, и в этом окне мне нужно использовать метод объектов, созданных в главном окне.

public partial class MainWindow
{
    //internal MyInterface1 MyObject1;
    //internal MyInterface2 MyObject2;

    internal MyClass1 MyObject1;
    internal MyClass2 MyObject2;

    public MainWindow()
    {
        InitializeComponent();

        //create instances
        MyObject1 = new MyClass1();

        MyObject2 = new MyClass2();
    }

    private void SomeMethod()
    {
        //in this window I neew consume some method and propertie of MyObject1 and MyObject1
        //my temporary solution is:
        var slaveWindow = new SlaveWindow(MyObject1, MyObject2);
    }

}

Может существовать подходящее решение, спасибо.

1 Ответ

1 голос
/ 21 ноября 2010

Нет ничего плохого в вашем "временном" решении. Я бы сделал это так же.

Кроме того, вы можете публично выставить два объекта и затем передать MainWindow в SlaveWindow:

class MainWindow : ...
{
    public MyClass1 MyObject1 { get; private set; }
    public MyClass1 MyObject2 { get; private set; }

    ...
    var slaveWindow = new SlaveWindow(this);
    ...
}

class SlaveWindow : ...
{
    public SlaveWindow(MainWindow mainWindow)
    {
        mainWindow.MyObject1.SomeMethod();
        mainWindow.MyObject2.SomeMethod();
    }
}

Какое решение предпочтительнее, вероятно, зависит от природы ваших двух объектов. Но я думаю, что можно с уверенностью сказать, что ваше текущее решение просто отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...