我不知道錯誤在哪裏。我有元素的列表,稱爲TileModel
使用默認值和ObservableCollection<TileModel> list
C#(Xamarin)List,其中及其更改
當我在我的視圖模型顯示的形式我在這個列表中找到具有相同名稱的元素。如果列表中存在元素,我將該元素複製到ObservableCollection
。
public ObservableCollection<TileModel> testList { get; set; }
List<TileModel> dsType = new List<TileModel>() {
new TileModel() { Text = "Alarms", IconImage = "Alarm.png",
NavigateType = typeof(Alarms) },
}
在功能我有這樣的代碼:
foreach (string s in items)
{
TileModel dm = dsType.Where(d => d.Text.RemoveTextBetween("(", ")").Trim() == s)
.FirstOrDefault();
if (dm != null)
{
dm.Text = UpdateTextItem(dm.Text, iType);
testList.Add(dm);
}
}
UpdateTextItem
更名Text
添加的記錄數。如果我使用F11跟隨代碼,那麼當我輸入函數dsType
時是原始的。在dm.Text = UpdateTextItem(dm.Text, iType);
之後,dsType更改爲dm.text
。
在我看來,dm
是一個新變量,其中有一個列表值,但不是列表元素的一個實例。那麼爲什麼代碼更改我的原始dsType
?
預先感謝您。
謝謝。我不知道。我沒有像你的例子那樣的ctor,然後爲了解決我的問題,我創建了一個新的'TileModel'並映射了每個屬性。 – Enrico
或者你爲此創建了一個ctor,這會在下一次你面對類似的東西時幫助你;)引用類型對於新的程序員來說通常是一個問題,儘管你沒有看到它是或多或少的一個沒有' *」 – TripleEEE