Ich habe zwei Formen: Form1
und Form2
. In Form1 .ctor, I am setting the
DataContext` wie unter: -Wie man Änderungen an der GUI eines WPF-Formulars anwendet, wenn ViewModel von einem anderen Formular als einem aktualisiert wird, auf dem es erstellt wurde?
public ViewModel1 VM1;
Public Form1()
{
InitializeComponent();
VM1=Populate_View_Model();//This method populates the ViewModel
this.DataContext = VM1;
}
Ich habe ein Ereignis auf dieser Form, die dieses Ansichtsmodell zu einer anderen WPF Form den Strom wird unter
private void cmdButtonTemplate_Click(object sender, RoutedEventArgs e)
{
ViewModel1 VM1_Clone = GetCloneObject(VM1_Clone); //Create a clone of ViewModel.Needed on Form2
new Form2(this, VM1,VM1_Clone);
}
Form2 nimmt (diese) Instanz von Form1 und sein aktuelles Ansichtsmodell und ein Klon von Ansichtsmodell wie unter: -
ViewModel1 VM, VM_Clone;
Form1 Objfrm1;
public Form2(Form1 ObjectForm1, ViewModel1 OvjVM1, ViewModel1 ObjVM1_Clone)
{
Frm1 = ObjectForm1;
VM = OvjVM1;
VM_Clone = ObjVM1_Clone;
Objfrm1 = ObjectForm1;
this.DataContext = VM_Clone;
}
Nun werden Form2 Änderungen VM1_Clone machen. Sobald ich jene Änderungen VM_Clone gemacht habe, habe ich ein Ereignis in Form2, wo ich die VM_Clone zu VM1 bin Einstellung wie unter: -
Form1 Frm1;
private void cmdSave_MouseUp(object sender, MouseButtonEventArgs e)
{
VM = VM_Clone;
}
Nun ich die GUI auf Form1 mit dem aktualisierten Ansichtsmodell von Form2 auffrischen wollte , dh VM.But die GUI auf Form1 wird nicht mit neuen Werten des aktualisierten View Model aktualisiert.
Ich habe sogar versucht, das Objekt Instanz von Form1 Einstellung (im Konstruktor von Form2 übergeben wird) mit dem Datacontext von Form1 von Form2 wie unter: -
private void cmdSave_MouseUp(object sender, MouseButtonEventArgs e)
{
//VM1 = VM1_Clone;
Objfrm1.DataContext = VM1;
}
Auch diese brachte kein results.Plz sagen, wie Anwenden der Änderungen, die an dem ViewModel eines Formulars vorgenommen werden, wenn das VieModel von einem anderen Formular als dem geändert wird, auf dem es erstellt wird.
Sie sollten allgemeine Informationen zur Verfügung stellen, über die Sie mit dem archivieren möchten. Ich sehe ein bisschen aus, als ob du einen Schnitt machen willst => Logik speichern/löschen. Dafür gibt es wahrscheinlich bessere Wege. –
Ich habe ein ViewModel erstellt auf Form1 und es muss von Form2 aktualisiert werden. Das ViewModel wird in Form2 aktualisiert, aber die Änderungen an ViewModel in Form2 spiegeln sich nicht in der GUI von Form1.Es gibt mehrere Möglichkeiten Dinge immer, aber ich möchte beantworten, wie es in diesem Fall getan werden soll? –