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很好地介绍了 Silverlight MVP 实现,并附有源代码。

于 2008-09-30T13:27:42.347 回答
1

我相信当控件被初始化、加载、渲染并准备好使用时,加载的事件会被调用。这意味着只要您不将它放在可见容器中(以便渲染),就不会引发加载的事件。

于 2008-09-25T20:46:55.913 回答
0

您可以考虑使用MVC# - 一个支持 Silverlight 2.0 的 Model View Presenter 框架。

奥列格·茹科夫

于 2008-11-06T00:01:23.777 回答