Я использовал MEF для загрузки во внешние XAP, это прекрасно работает.Но когда я ухожу со страницы с загруженным элементом управления, а затем возвращаюсь к нему, элемент управления находится в том состоянии, в котором я его оставил.
Теперь иногда это замечательно, но не для проекта, над которым я работал.
Как мне вернуть элемент управления в исходное состояние?
Элемент управления загружен (успешно) в следующее:
<ItemsControl x:Name="content"/>
Это в разметке XAML
У меня есть метод On NavigatedFrom:
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
content.Items.Clear();
}
Этот элемент успешно удалил элемент управления, как и до добавления этого, когда я вернулся на страницу, на которой произошел сбой, сообщив, что элемент управления уже был дочернимэлемент.
вот полный код страницы:
public partial class Wizard : IPartImportsSatisfiedNotification
{
public Wizard()
{
InitializeComponent();
CompositionInitializer.SatisfyImports(this);
var controlToLoad = IsolatedStorageHelper.GetValue("control");
if (!String.IsNullOrEmpty(controlToLoad))
{
CatalogService.AddXap(controlToLoad + ".xap");
}
else
{
NavigationService.Navigate(new Uri("/ServiceSelector", UriKind.Relative));
}
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
content.Items.Clear();
}
[Import]
public IDeploymentCatalogService CatalogService { get; set; }
[ImportMany(AllowRecomposition = true)]
public Lazy<UserControl>[] MefModuleList { get; set; }
#region IPartImportsSatisfiedNotification Members
public void OnImportsSatisfied()
{
MefModuleList.ToList()
.ForEach(module =>
content.Items.Add(module.Value)
);
}
#endregion
}
Кто-нибудь есть идеи?
Спасибо,