我不知道错误在哪里。我有元素的列表,称为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