Я изучаю различные функции Prism, и теперь я застреваю при открытии нового окна. Мое приложение Shell имеет область Master region и Detail. В главном регионе Shell есть DataGrid с элементами, которые при нажатии отображают его свойства в области Detail. Что мне нужно - это создать новый экземпляр окна с двойным щелчком по элементу в регионе мастера. И каждое новое окно может оставаться активным до тех пор, пока я не закрою его, поэтому я могу открыть и другие окна, щелкнув любой другой элемент в регионе мастера.Prism Mvvm Mef Interactivity Open window new instance
В предвоенном MVVM-Prism раза, я бы, вероятно, сделать что-то вроде:
ICollection<Window> MyWindows = new List<Window>();
var wnd = MyWindows.SingleOrDefault(x => x.Name == id.ToString());
if (wnd == null)
{
wnd = new MyWindow(this, id);
MyWindows.Add(wnd);
}
wnd.Show();
Но это не годно из ViewModel и призмы Шелла ...
Если бы что-то использовать как InteractionRequestTrigger из моей Shell XAML:
<prism:InteractionRequestTrigger SourceObject="{Binding CyberPopUpViewRequest, Mode=OneWay}">
<prism:PopupWindowAction>
<prism:PopupWindowAction.WindowContent>
<views:CyberPopUpView />
</prism:PopupWindowAction.WindowContent>
</prism:PopupWindowAction>
</prism:InteractionRequestTrigger>
Но это позволяет мне создать только одно окно.
Спасибо, будет проверить это, как я не думал создание окна в сервисе. Возможно ли, что я определяю новые области Призма в новом макете в новом окне? – VladacusB
Я никогда не пробовал, но это может сработать, я полагаю. – Haukinger