0

C# Windows フォームでモデル ビュー プレゼンター パターンを実装しようとしています。私はいくつかの異なる方法を試しましたが、これを理解していません。ユーザーがテキストボックスをクリックしたときに、テキストボックスからのユーザー入力を「受け入れる」方法はありますか? 存在しない場合、プレゼンターにデータを渡す一般的な方法は何ですか? テキストボックスの on_text_changed イベントを使用できますが、データを検証する方法がわかりません。

4

3 に答える 3

1

このスレッドが古すぎることは知っていますが、それでもまだです。

public interface IProjectView
{
    string textBoxText{get;}
}

ProjectViewで実装する

public class ProjectView : IProjectView
{
    ProjectPresenter _presenter;

    public ProjectView()
    {
        _presenter = new ProjectPresenter(this);
    }

    string textBoxText
    {
        get
        {
            // Do validation if you want
            return textBox1.Text;
        }
    }
}


class ProjectPresenter
{
    IProjectView _view;
    public ProjectPresenter(IProjectView view)
    {
        _view = view;
    }

    public void AnyMethod()
    {
        // Access value of textbox as _view.txtTextBoxText
    }
}

コードはテストされていませんが、正常に動作するはずです。

検証に関しては、ProjectView でプロパティを実装する際に、値を返す前に検証を行います。

于 2012-07-23T09:25:48.683 に答える
1

ここでは、クラスの機能をコードで説明するMSDNリンクが簡単だと思います。TextBox

TextBoxBase.Text プロパティ

& 次を使用して検証: Control.Validated イベント

それが役に立てば幸い!

于 2012-04-09T00:45:28.553 に答える
0

Leave イベントをリッスンする必要があります。これは、テキスト ボックスがフォーカスを失ったときに発生します。その後、検証を行うことができます。

于 2012-04-09T01:20:43.287 に答える