I ran into an issue using a struct today that caught me off guard, and I was hoping someone could shed some light on it for me.
I have a struct defined like this:
public struct PaymentDetail
{
public Decimal Amount{get;set;}
public string CheckNumber{get;set;}
public PaymentType PaymentType{get;set;}
}
I have a class that contains this info
public class Transaction
{
public PaymentDetail Payment{get;}
}
I have a presentation model which in which I want to set the underlying properties like this
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");
}
}
}
What's wierd is I can make this work if I change the Payment property to a public field like this:
public class Transaction
{
public PaymentDetail Payment;
}
there's obviosuly something I don't understand about structs that are causing this. Is this a bad idea? Is there a better way? What am I doing wrong?