【发布时间】:2010-01-08 14:46:29
【问题描述】:
在我的应用程序中,我在其关联的视图模型的构造函数中实例化了我的视图的一个新实例。我还有一些事件要通过事件聚合器订阅。
public class FooViewModel
{
private FooView TheView { get; set; }
private IEventAggregator Aggregator { get; set; }
public FooViewModel()
{
Aggregator = new EventAggregator();
Aggregator.GetEvent<ListReceivedEvent>()
.Subscribe(OnListReceived, ThreadOption.UIThread, true);
TheView = new FooView();
}
public void OnListReceived(ObservableCollection<int> items)
{
TheView.Items = items;
}
}
这样做的问题是,如果视图被操纵并且我为不同类型的 Foo 重新加载它,那么它之前使用的残余物会留下来。解决此问题的一种方法是在每次需要另一个上下文时实例化一个新视图,但这会导致 RegionManager 也在应用程序中使用。有什么方法可以将 Silverlight 视图重置回其初始状态,而无需实例化它的新实例?
【问题讨论】:
标签: silverlight silverlight-3.0 mvvm prism