どこにエラーがあるのか分かりません。 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を作成すると、次回のようなときに役立ちます;)参照型は、新しいプログラマーにとってはしばしばC++からの問題ですが、 * ' – TripleEEE