Сегодня я столкнулся с проблемой использования структуры, которая застала меня врасплох, и я надеялся, что кто-нибудь сможет пролить на меня немного света.
У меня есть структура, определенная так:
public struct PaymentDetail
{
public Decimal Amount{get;set;}
public string CheckNumber{get;set;}
public PaymentType PaymentType{get;set;}
}
У меня есть класс, который содержит эту информацию
public class Transaction
{
public PaymentDetail Payment{get;}
}
У меня есть модель представления, в которой я хочу установить базовые свойства, подобные этому
public class ViewModel
{
public Decimal Amount
{
get{return _Transaction.PaymentDetail.Amount;}
set
{
//This is the offending line of code
_Transaction.PaymentDetail.Amount = value;
RaisePropertyChanged("Amount");
}
}
}
Что странно, я могу сделать эту работу, если я изменю свойство Payment на открытое поле, например:
public class Transaction
{
public PaymentDetail Payment;
}
есть нечто, чего я не понимаю в структурах, которые это вызывают. Это плохая идея? Есть ли способ лучше? Что я делаю не так?