我想在WPF MVVM中存儲我的Company
模型的臨時版本,但是我遇到問題,即使我創建的臨時數據未綁定到我的UI元素,它仍然存在仍在更新中。如何在WPF MVVM中存儲臨時未修改的模型
這裏是當ModifyCompanyViewModel
被實例化會發生什麼:
public ModifyCompanyViewModel(Company passedCompany)
{
SelectedCompany = passedCompany;
_tempCompany = passedCompany;
CloseWindowCommand = new CloseableCommand<Window>(CloseWindow);
}
所以我有一個只讀Company
命名爲_tempCompany
。 UI元素綁定,像這樣:
<TextBox Grid.Row="1" Grid.Column="1" x:Name="NameTextBox" Text="{Binding SelectedCompany.Name, Mode=TwoWay}"/>
顯然他們一定的SelectedCompany
。如果我在包含公司名稱的TextBox
中鍵入不同的東西,但返回_tempCompany
_tempCompany
的名稱反映了我輸入的內容。
我該如何將_tempCompany
存儲爲無論輸入什麼名字都保持不變的方式?我已經開始使用這種方法,它的作品:
_tempCompany = new Company
{
Id = passedCompany.Id,
Name = passedCompany.Name
//Other properties..
};
但這似乎很繁瑣,我忽略了一個更簡單的方法。
回顧C#refrence類型來理解爲什麼_tempCompany反映SelectedCompany – ASh
變化模型實現'ICloneable'並使用爲您的時間'_tempCompany = passedCompany.Clone()' – dymanoid
@dymanoid感謝。我會研究那個ASH。如何在EF生成模型時實現'ICloneable'? – CBreeze