0

MVPをSilverlightで動作させる方法についてのアイデアはありますか?ロードイベントが発生しないという事実を回避するにはどうすればよいですか?

これは私が持っている見解です:

    public partial class Person: IPersonView
    {
        public event RoutedEventHandler Loaded;

        public Person()
        {
            new PersonPresenter(this);

            InitializeComponent();
        }

        public Person Person
        {
            set { Person.ItemsSource = value; }
        }
    }

そして私のプレゼンター:

 public class PersonPresenter
    {
        private readonly IPersonView _view;
        private readonly ServiceContractClient _client;

        public PersonPresenter(IPersonView view)
        {
            _client = new ServiceContractClient();

            _view = view;
            WireUpEvents();
        }

        private void WireUpEvents()
        {
            _view.Loaded += Load;
        }

        private void Load(object sender, EventArgs e)
        {
            _client.GetPersonCompleted += Client_GetPerson;
            _client.GetPersonAsync();
        }

        private void Client_GetPerson(object sender, GetPersonCompletedEventArgs e)
        {
            _view.Person= e.Result;
        }
    }

Loadedイベントが呼び出されないようであるため、何も起こりませんでした。これを回避するにはどうすればよいですか?

4

3 に答える 3

3

Tim Rossは、ソースコードを使用して、SilverlightMVPの実装について優れた紹介をしています。

于 2008-09-30T13:27:42.347 に答える
1

コントロールが初期化、ロード、レンダリングされ、使用可能になると、ロードされたイベントが呼び出されると思います。これは、(レンダリングされるように) 可視コンテナ内に配置しない限り、ロードされたイベントは発生しないことを意味します。

于 2008-09-25T20:46:55.913 に答える
0

Silverlight 2.0 をサポートする Model View Presenter フレームワークであるMVC#の使用を検討してください。

オレグ・ジューコフ

于 2008-11-06T00:01:23.777 に答える