Zdravím, marně se snažím googlit a najít řešení jak v .net core WPF s
DI otevřít nové okno. Používám MVVM a ve svém viewmodel mám tlačítko,
které má otevřít nové okno. Udělal jsem to tak, že jsem si okno
registroval v DI a předal v parametru konstruktoru. Nevím jestli je tohle
zcela správně. Nicméně okno pak otevřu, ale když ho zavřu a znovu
otevřu, tak to zahlásí:
Cannot set Visibility or call Show, ShowDialog, or WindowInteropHelper.EnsureHandle after a Window has closed.'
Tomu rozumím a zkrátka nevím jak tohle přesně udělat...
Předem díky moc za rady
Zkusil jsem: Hledat na googlu i testovat kód.
Chci docílit: Správné funkčnosti k otevírání oknům.
Ahoj. Nemůžeš si do DI předat okno, ale pouze factory.
class WindowFactory{
privatereadonly SomeClass DIParameter;
/* další DI parameters */public WindowFactory(SomeClass DIParameter /* DI parametry */){
this.DIParameter = DIParameter;
/* DI parametry */
}
publicvoid open(){
returnnew SpecialWindow(DIParameter /* DI parametry */);
}
}
Tuto factory přidáš do DI a když budeš chtít vytvořit okno, tak
zavoláš metodu open. Tím se ti při každém kliknutí vytvoří okno nové,
což je přesně to, co chceš. Možná má .NET nějakou metodu, která factory
vytvoří přímo, nebo si ji můžeš napsat sám.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.