I need to create an instance of a ViewModel with a specific parameter passed to the ViewModel when created. At the same time this ViewModel instance should be registered in SimpleIOC
i thought this was the method for it:
SimpleIoc.Register<TClass> Method (Func<TClass>, String, Boolean)
with set to true
for the last parameter for instant creation.
so if i understood that correctly, this method wants a reference to a method that will create my ViewModel instance.
This is called a ClassFactory as it seems.
i tried to do it myself but all i get is
cannot convert from <Class> to System.Func<Class>
so as it seems im passing always the instance of the class, and not the method that should create it.
can someone give a short example how i can get this to work
public class ClassFactory
{
public ChatWindow CreateChatWindow(RosterItemX ri)
{
return new ChatWindow(ri);
}
}
public class ViewModelLocator
{
.
.
.
.
public static void CreateWindow(RosterItemX riv)
{
ClassFactory cf = new ClassFactory;
SimpleIoc.Default.Register<ChatWindow>(cf.CreateChatWindow(ri), "key", true )
var _messageWindow = new MessageWindow();
_messageWindow.Show();
}
}
class ChatMessage
{
RosterItemX ri = new RosterItemX();
ViewModelLocator.CreateWindow(ri);
}