Вы должны использовать контекстную область в ваших окнах, как все они имеют один и те же IRegionManager
. Кроме того, убедитесь, что ваш пользовательский элемент управления имеет свой атрибут PartCreationPolicy
, установленный на NonShared
.
MSDN предоставляет документацию о том, как создать несколько экземпляров одного и того же региона http://msdn.microsoft.com/en-us/library/ff921098%28v=pandp.40%29.aspx#sec42
регионы с заданной областью доступны только с впрыском зрения. Вы должны использовать , если вам нужен вид, чтобы иметь свой собственный экземпляр области. Представления , которые определяют области с прикрепленными свойствами, автоматически наследуют их региональный менеджер. Обычно это глобальный RegionManager, который зарегистрирован в окне оболочки. Если приложение создает несколько экземпляров этого представления, каждый экземпляр попытается зарегистрировать свою область с родительским RegionManager. RegionManager позволяет использовать только регионы с уникальным именем; поэтому вторая регистрация приведет к ошибке.
IRegion detailsRegion = this.regionManager.Regions["DetailsRegion"];
View view = new View();
bool createRegionManagerScope = true;
IRegionManager detailsRegionManager = detailsRegion.Add(view, null,
createRegionManagerScope);
Метод Add возвращает новый RegionManager, что представление может сохранить [так в оригинале] для дальнейшего доступа к локальной области видимости.
http://stackoverflow.com/a/4822006/181771 – DaveDev
Вы должны добавить хотя бы код ошибки. –