내가 하고 싶었던거는
이렇게 BASE Model Class가 있고
1 2 3 4 5 | public class OrderKey { public string nTempOrderID { get; set; } public string nOrderID { get; set; } } |
OrderKey를 상속받는 클래스가 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class ConvertOrderKey : OrderKey { public List<OrderItem> OrderItemList { get; set; } public void CopyFromBase(OrderKey orderKey) { // copy base class properties. foreach (PropertyInfo prop in orderKey.GetType().GetProperties()) { PropertyInfo prop2 = orderKey.GetType().GetProperty(prop.Name); prop2.SetValue(this, prop.GetValue(orderKey, null), null); } } } |
ConvertOrderKey는 OrderKey를 상속받고 추가로 List를 하나 더 추가하는것이였다.
CopyFromBase라는 메소드를 만들어서 단순히 orderkey에 있는 내용을 전부 클래스에 복사한다.
이렇게 하면
1 2 3 4 5 6 7 8 9 10 11 | public static void ConvertData(ObservableCollection<OrderKey> orderKey) { var covertOrderKeyList = new ObservableCollection<ConvertOrderKey>(); foreach (var item in orderKey) { ConvertOrderKey cok = new ConvertOrderKey(); cok.CopyFromBase(item); cok.OrderItemList = new List<OrderItem>(); covertOrderKeyList.Add(cok); } } |
이런식으로 기존 Base 클래스 List안에 있는것들에 있는것들을 상속받은 Class로 Copy하고
추가로 OrderITemList값을 지정할수 있다.
참고 : https://social.msdn.microsoft.com/Forums/vstudio/en-US/2105f08f-50ce-47a3-8e2a-3e62634d4cbc/copy-properties-from-base-class-to-derived-class-without-manually-mapping-them?forum=csharpgeneral
'wpf' 카테고리의 다른 글
List Object를 Copy 해보자. (ICloneable) (0) | 2017.07.24 |
---|---|
non-ASCII를 없애보자. (0) | 2017.07.21 |
listbox에서 오른쪽 정렬하고 싶을때 (0) | 2017.07.18 |
[WPF] NavagionManager (0) | 2017.07.17 |
MVVM Button Click Command 사용법 (0) | 2017.07.17 |