Mvvm 如何在Windows Phone 7上实现基本视图功能?
假设在我的所有视图上,或者在我的应用程序中的任何时候,我都希望能够显示一个错误消息弹出窗口,并且它看起来总是一样的。我该怎么做 第一个想法是让我所有的视图模型都扩展一个基本视图模型,这有助于实现这些功能,但是在那之后,我是否让这个基本视图模型实际创建UI小部件并显示它们 谢谢,Mvvm 如何在Windows Phone 7上实现基本视图功能?,mvvm,windows-phone-7,silverlight-3.0,Mvvm,Windows Phone 7,Silverlight 3.0,假设在我的所有视图上,或者在我的应用程序中的任何时候,我都希望能够显示一个错误消息弹出窗口,并且它看起来总是一样的。我该怎么做 第一个想法是让我所有的视图模型都扩展一个基本视图模型,这有助于实现这些功能,但是在那之后,我是否让这个基本视图模型实际创建UI小部件并显示它们 谢谢, 标记您可能可以在基本视图模型上定义一个事件,每当发生错误时,该事件将在视图模型内触发,然后在视图中,您可以订阅此事件并显示弹出窗口。您可以在激发事件的EventArgs中携带错误上下文 此外,您可以统一显示弹出窗口的逻辑
标记您可能可以在基本视图模型上定义一个事件,每当发生错误时,该事件将在视图模型内触发,然后在视图中,您可以订阅此事件并显示弹出窗口。您可以在激发事件的EventArgs中携带错误上下文 此外,您可以统一显示弹出窗口的逻辑,但这可能是另一种情况:) 这是可测试的,并且与视图很好地解耦 希望这有帮助,
Robert如果您想在一系列视图中提供一些通用功能,那么您可以实现一个基类,该基类继承自
PhoneApplicationPage
,然后从该类派生所有类。然后,页面的XAML如下所示:
<local:BasePage xmlns ...
xmlns:local="clr-namespace:MyNamespace"
x:Class="MyNamespace.MyPage">
但是,您将无法在XAML中为基本页定义通用UI组件。如果您想拥有通用UI组件,您应该在基本页面的代码隐藏中手动创建它们,可能是在加载的事件的处理程序中,但我认为更好的解决方案是在UserControl
中提供您的通用UI,然后将其添加到每个页面中
如果您想显示Toast或Message Box,那么我建议按照中的说明从中选择ToastRequestTrigger
和MessageBoxRequestTrigger