我有兩種形式: Form1
和Form2
。 在Form1 .ctor, I am setting the
DataContext`如下: -如何在ViewModel從其創建的表單之外的表單更新時將更改應用於WPF表單的GUI?
public ViewModel1 VM1;
Public Form1()
{
InitializeComponent();
VM1=Populate_View_Model();//This method populates the ViewModel
this.DataContext = VM1;
}
我有這樣的形式對藉此視圖模型到另一個WPF形式的事件
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);
}
窗體2正在Form1的電流(此)實例和當前視圖模型和視圖模型下的克隆: -
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;
}
現在,窗體2者更改VM1_Clone。 一旦我做了這些改動VM_CLONE,我在Form2的事件我在哪裏設置VM_CLONE到VM1爲下: -
Form1 Frm1;
private void cmdSave_MouseUp(object sender, MouseButtonEventArgs e)
{
VM = VM_Clone;
}
現在我想刷新GUI Form1上與更新的視圖模型從窗體2 ,即VM.但Form1上的GUI不會使用更新的View Model的新值更新。
我甚至試圖與Form1的窗體2從在DataContext爲下設置Form1的對象實例(在窗體2的構造器): -
private void cmdSave_MouseUp(object sender, MouseButtonEventArgs e)
{
//VM1 = VM1_Clone;
Objfrm1.DataContext = VM1;
}
這也沒有取得任何results.Plz告訴如何在將VieModel從創建它的表單以外的表單更改爲應用對錶單的ViewModel所做的更改時。
您應該提供更多的通用信息,關於您想要歸檔的信息。我看起來有點像你想編輯=>保存/取消邏輯。爲此,可能有更好的方法。 –
我有一個在Form1上創建的ViewModel,它需要從Form2更新。ViewModel在Form2中得到更新,但在Form2中對ViewModel所做的更改沒有反映在Form1的GUI中。不止一種方式事情總是如此,但我想回答在這種情況下應該如何完成? –