Восстановить несколько значений, содержащихся в объекте c# - PullRequest
0 голосов
/ 16 июня 2020

Я запускаю событие в своей кнопке:

private void button1_Click(object sender, EventArgs e)
{
 _info.Event(value,data); // _info declared above for call from other class
 _info.Event(value2,data2);
}

Моя форма:

public Form1()
{
 _info = new Info();
 _info.NewData += CustomEvent;
}

И для отображения:

private void CustomEvent(object sender, MyEvent e)
{
 textBox1.Text = (e.data).ToString();
 textBox2.Text = (e.data).ToString(); //only this value show in both textboxs
}

Мой вопрос: я пытаюсь использовать мое событие для восстановления нескольких значений, но я не знаю, как разделить значения в моем объекте, чтобы отобразить их в разных текстовых полях?

1 Ответ

0 голосов
/ 16 июня 2020

Это пример того, как работать с делегатами :
Конечно, вы можете изменить параметры в делегате. Я выбрал "строковые данные" и "логический успех", но вы можете их изменить.


public class Foo
{
    public delegate void MyDataDelegate(string data, bool success); //create a delegate (=custom return/param type for event)
    public event MyDataDelegate OnMyEvent; //create event from the type of the early created delegate

    private void myMethod()
    {
        //do something 
        bool success = true;
        OnMyEvent?.Invoke("some data", success); //invoke event (use "?" to check if it is null). Pass the params
    }
}

public class MyClass
{
    Foo myFoo;

    public MyClass()
    {
        myFoo = new Foo();
        myFoo.OnMyEvent += OnMyEventtriggered; //subscribe to the event in the costructor of your class
    }

    private void OnMyEventtriggered(string data, bool success)
    {
        //do something
    }
}
...