wpf2022. 12. 5. 11:44

await SendConfirmMsg(msgSplit, DataManager.LocalData.LongTrendBuy, "QuitRange");

 

 

 

private static async Task SendConfirmMsg(string[] msgSplit, dynamic data, string prop)
        {
            double numValue;
            bool isNum = double.TryParse(msgSplit[2], out numValue);

            data.GetType().GetProperty(prop).SetValue(data, numValue, null);           

            DataManager.Instance.SaveData();
            await TelegramPushService.SendMessage($"{msgSplit[0]} {msgSplit[1]} {numValue}");
        }

 

 

이런식으로 반복되는 구문을 dynamic을 이용해서 짧게 만들수 있다.

 

중요

 

data.GetType().GetProperty(prop).SetValue(data, numValue, null);   

 

참고

https://stackoverflow.com/questions/12970353/c-sharp-dynamically-set-property

'wpf' 카테고리의 다른 글

MEF란?  (0) 2023.06.08
[WPF] gRPC Client 빌드 안될때 대처법  (0) 2023.06.07
public (string name, int age) GetUser()  (0) 2022.10.26
PeriodicTimer  (0) 2022.08.31
2개의 LIST 비교 하는것  (0) 2021.11.18
Posted by 동동(이재동)
wpf2022. 10. 26. 15:34

Tuple 대신에 이렇게 사용할수도 있다 엄청 편리할듯

 

public (string name, int age) GetUser()
        {
            return ("이름", 30);
        }

'wpf' 카테고리의 다른 글

[WPF] gRPC Client 빌드 안될때 대처법  (0) 2023.06.07
dynamic property 에서 Set을 할떄  (0) 2022.12.05
PeriodicTimer  (0) 2022.08.31
2개의 LIST 비교 하는것  (0) 2021.11.18
싱글톤 쓰기  (0) 2021.08.24
Posted by 동동(이재동)
wpf2021. 11. 18. 18:01

private bool IsDiffList<T>(List<T> list1, List<T> list2)
        {
            var diff1 = list1.Except(list2);
            var diff2 = list2.Except(list1);

            var resultDiff = diff1.Concat(diff2).ToList();

            if (resultDiff.Count > 0)
                return true;
            else
                return false;
        }

 

if (IsDiffList<OrderInfo>((xProfitOrderListbox.ItemsSource as List<OrderInfo>).ToList(), _service.OrderInfoList))
                {
                    xProfitOrderListbox.ItemsSource = _service.OrderInfoList;
                    xProfitOrderListbox.Items.Refresh();
                }

 

이런식으로 반복적으로 item을 넣어야 하는곳에 넣어준다. timer를 이용하면 객체를 계속 생성하기때문에

 

무조건 넣어주면 메모리 Leak 이 걸린다. 그렇기 떄문에 변경될때만 적용되게 해야한다.

'wpf' 카테고리의 다른 글

public (string name, int age) GetUser()  (0) 2022.10.26
PeriodicTimer  (0) 2022.08.31
싱글톤 쓰기  (0) 2021.08.24
Combox 에 Enum 바인딩  (0) 2021.05.06
WPF에서 기본적으로 제공해주는 BoolToVisConverter 컨버터  (0) 2020.04.28
Posted by 동동(이재동)
wpf2017. 9. 6. 12:13

예를 들면 3이라는 숫자가 바인딩 되어 있고

이걸 3개월로 바꾸고 싶으면 Converter를 쓰면 되지만 일일이 만들기가 엄청 귀찮다


 <TextBlock Text="{Binding Month, StringFormat={}{0}개월}"/>


돈도 

<TextBlock Text="{Binding Money,StringFormat='##,#'}" />


이렇게 하면 300,000 형식으로 나온다.



Posted by 동동(이재동)
Windows Phone 72011. 12. 16. 10:32

%를 사용하여 10으로 나눈 나마지을 빼버리면 간단~~

 

금액 = 금액 - (금액 % 10) 

 

ex)

324 - ( 324 % 10 ) = 320

Posted by 동동(이재동)
wcf2011. 5. 31. 15:45

프로시저를 만들고 이제 WCF 서비스에서 프로시저를 실행을 하기 위해서 DB 연동을 해야 한다.

 

그냥 프로젝트에서 new item 후 Data 에 linq to sql classes를 선택 한다.

image

 

 

그뒤에 생성된 dbml에 Table과 프로시저를 드래그앤 드랍하면 끝~

image

 

호출은 이렇게 하면 된다.

 

public void InsertSubScriber()
        {
            using (DataClassesDataContext context = new DataClassesDataContext())
            {                
                context.sp_WP7Subscribers_Insert(1,"himan",DateTime.Now);
            }
        }

 

쉽다

Posted by 동동(이재동)