だから、System.Nullablesをint型のようにキャストするのに問題があります。System.Nullableでデフォルトの型をクラスから名前で取得する方法
いくつかの研究の後、私は自分のコードを変更しましたが、私のクラスから名前だけでどのように型を取得するか分かりません。
for (int i = 0; i < m_textEdits.Count; i++)
{
string fieldName = m_textEdits[i].Name.Substring(m_textEdits[i].Name.LastIndexOf("_") + 1);
System.Reflection.PropertyInfo propInfo = m_aktuelleZeille.GetType().GetProperty(fieldName);
if (propInfo != null)
{
if (propInfo.GetMethod.ToString().Contains("Null"))
{
propInfo.SetValue(m_aktuelleZeille, m_textEdits[i].EditValue ?? default(IDK WHAT TO PUT IN HERE));
}
else if (propInfo.SetMethod != null) propInfo.SetValue(m_aktuelleZeille, m_textEdits[i].EditValue);
}
}
m_texedits Textedits一覧で、テキストエディットは「tb_Menge」たとえばと呼ばれるフィールド名に「Menge」を意味し、m_aktuelleZeilleでは、例として含まれている私のクラスですので:
private int? menge;
public int? Menge
{
get { return menge; }
set
{
if (value != menge)
{
menge = value;
OnPropertyChanged("Menge");
}
}
}
それ以外の場合私がnullable型を取得した場合、正常に動作します。(理由は私がifを暗示しています)
propInfo.Generic ...私は動的に値をm_textedits [i] .editvalueからクラスm_aktuelleZeilleにプロパティ "Menge"を例として動的にキャストしたいと思います。問題は通常、私のコードではelseと動作しますが、intのようなクラスにPropertyがある場合は、System.Decimal(Texeditは数値に設定されています)をキャストできません。 – FeuFeuAngel
申し訳ありませんあなたがしようとしていることを理解するのに苦労しています。それをもっと明確にするために質問を更新できますか? – Fermin