Windows phone 7 在Windows Phone应用程序中,哪种方法更好?

Windows phone 7 在Windows Phone应用程序中,哪种方法更好?,windows-phone-7,Windows Phone 7,在WP应用程序中,哪种方法更好 在.xaml页面中,调用另一个类的方法(传递.xaml.cs回调方法的委托),该方法向服务器发出一些请求,接收数据,并在请求完成时调用.xaml.cs页面方法。在回调方法中,我们获取数据并用控件(ListBox)绑定数据 将列表框与MainViewModel类的ObservableCollection对象绑定。并从MainViewModel中更改有界对象。对服务器请求的所有调用都是在MainViewModel类中进行的 我投票赞成选择2。事件项目模板(例如Wind

在WP应用程序中,哪种方法更好

  • 在.xaml页面中,调用另一个类的方法(传递.xaml.cs回调方法的委托),该方法向服务器发出一些请求,接收数据,并在请求完成时调用.xaml.cs页面方法。在回调方法中,我们获取数据并用控件(ListBox)绑定数据

  • 将列表框与MainViewModel类的ObservableCollection对象绑定。并从MainViewModel中更改有界对象。对服务器请求的所有调用都是在MainViewModel类中进行的


  • 我投票赞成选择2。事件项目模板(例如Windows Phone 7的数据绑定应用程序模板)提供了
    MainViewModel
    ,并将
    Listbox
    绑定到该类中的
    ObservableCollection


    MVVC
    方法为您提供了更大的灵活性,您的UI与逻辑完全分离。您的UI只需要知道它绑定到一个
    可观察集合,而不需要知道该集合是如何填充的。

    我认为您应该使用第二种方法,它允许您创建松散耦合的应用程序。此类应用的最大优势是:

    • 关注点分离:不同的子系统/层是独立的
    • 单元测试非常简单
    • 重构更容易
    • 提高代码重用的能力
    关于WP7,您可以阅读我的文章,其中展示了如何使用这种方法进行编码:

    同意,将尽可能多的代码保留在.xaml.cs之外允许您单独为其编写自动化测试(假设您控制对其依赖项的访问,如web请求),谢谢,但第一种方法的UI也与逻辑完全分离,当执行控件返回到xaml.cs中的回调方法时,我可以在UI中进行一些其他更改,比如显示/隐藏一些控件。第二种方法是,如果应用程序很大,那么MainViewModel类可能有数千行,并且很难管理。您不应该将所有tha应用程序逻辑都保存在一个MainViewModel中,您有许多ViewModel,它们具有应用程序不同部分的逻辑。