Запись в текстовое поле в форме из другого класса - PullRequest
0 голосов
/ 05 февраля 2012

Мне нужно записать результат моего запроса в текстовое поле в основной форме из другого класса. Каков наилучший и простой способ добиться этого?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2012

Ваш внешний класс не должен ничего знать о текстовом поле. Он может знать о вашей форме, чтобы отправить туда результат, но элементы принадлежат форме и не должны быть доступны (это называется инкапсуляцией).

Я предлагаю вам иметь значимый метод в вашей форме, что-то вроде ShowListOfUsers (пользователи) или что бы вы ни делали, вызывайте его соответствующим образом, чтобы его можно было понять внешне. Затем в этом методе вы помещаете результат в элементы управления (текстовое поле), как хотите.

Я также предлагаю вам иметь интерфейс для формы, который будет содержать такие поведенческие методы, и в вашем окне реализован этот интерфейс, что-то вроде:

public interface IOrderView
{
    void ShowOrderDiscount(result);
}

так что ваш внешний класс будет знать только об интерфейсе, а не об окне, текстовом поле и т. Д.

Теперь ваш компонент запроса тривиален:

public class SomeOperation
{
    private readonly IOrderView _view;
    public SomeOperation(IOrderView view)
    {
        _view = view;
    }

    public void DoSomething(parameters)
    {
        var result = GetMyComplicatedResult();
        _view.ShowResult(result);
    }
}

Приведенный выше код не идеален (поскольку я не знаю, каков ваш сценарий), но идея есть.

Удачи.

0 голосов
/ 05 февраля 2012

Используйте открытое свойство (или метод получения) в своем классе, чтобы получить выходные данные запроса.

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