파랑부엉이
10
2019-01-29 13:48:45
6
619

c# wpf prism 패턴에서의 oxyplot 차트 사용중 질문있습니다.


안녕하세요...이제 막 입사한지 몇달 안된 초보 개발자 입니다..

현재 비쥬얼 스튜디오17 버젼15.9.4에서 c#로

oxyplot를 이용하여 실시간 차트를 그리는 작업을 진행하고 있습니다.

현재 실시간으로 사용하는 데이터는

//실시간 차트용 데이터리스트
            //db테이블에 첫행 삭제 이후 데이터추가 or 재정렬
            if (realTimeTrend.Count >= 600)
            {
                realTimeTrend.RemoveAt(0);
                realTimeTrend.Add(trend);
            }
            else
            {
                realTimeTrend.Add(trend);
            }

            //이벤트 어그리게이트 >> TrendViewModel 차트 데이터 갱신
            ea.GetEvent<TrendEvents>().Publish(realTimeTrend);
            

이렇게 생성을 해서 eventaggregator를 사용하여 넘겨주고


public TrendLayoutViewModel(IEventAggregator eventAggregator)
        {
            ea = eventAggregator;
            
           //TrednDatas = 차트의 시리즈 데이터가 담긴 배열
          //thisCtrl as TrendLayout).chart.Model = 차트 객체
            ea.GetEvent<TrendEvents>().Subscribe((e) =>
            {
                // 모드버스 값 입력
                TrendDatas = new ObservableCollection<TrendData>(e);
                (thisCtrl as TrendLayout).chart.Model.ResetAllAxes();
                (thisCtrl as TrendLayout).chart.Model.InvalidatePlot(true);
            });

(thisCtrl as TrendLayout).chart.Model.InvalidatePlot(true);를

이용하여 차트를 갱신하여 실시간 차트로 보이고 싶은데

갱신 부분이 잘 되질 않아 질문글 남깁니다..


많은 지적과 조언주시면 감사하겠습니다!!!

0
0
  • 답변 6

  • 밀수나라
    489
    2019-01-29 13:57:29

    초보시라면서 wpf에 프리즘까지 하시다니 잘하시는가보네요.

    프리즘이면 mvvm은 기본일텐데 차트로 보여지기 위한 viewmodel에 값을 넣으면 자동적으로 화면이 갱신되는 방식일 껍니다.

    그럼 viewmodel에 값을 넣어야 되는데, 지금은 차트 갱신 함수만 호출중인가 보네요

    0
  • 파랑부엉이
    10
    2019-01-29 14:27:25 작성 2019-01-29 15:42:22 수정됨

    밀수나라

    답변 감사합니다!!!

    아직 샘플비교하여 코드따기 바쁜 잘하지 못하는 초보 맞습니다!! 과찬 감사합니다!!


    제 생각으로는 이부분에서 e로 데이터가 넘어오고 밑에 new..부분으로 차트에 연동된 부분이랑 연결됬다고 생각하는데 틀린건가요...?

    ea.GetEvent<TrendEvents>().Subscribe((e) =>
                {
                    // 모드버스 값 입력
                    TrendDatas = new ObservableCollection<TrendData>(

    =========수정했습니다=====

    0
  • 밀수나라
    489
    2019-01-29 15:13:08

    글쓰다 날라갔다......


    어쨋든 데이터를 어디서 넣는지 잘 모르겠음요.


    0
  • 밀수나라
    489
    2019-01-29 15:36:58

    아 맨위 리얼타임 부분이 있구나


    일단 위에 시리즈 설정하는 코드는 좀 빼주세요 너무 길어서 보기가 힘드네요 ㅠ

    0
  • 파랑부엉이
    10
    2019-01-29 15:43:00

    보기 힘드셨다니 죄송합니다..

    어디서 어떻게 보여드려야할지 헷갈려서...말씀해주신대로 시리즈 설정하는 부분은 지웠습니다..

    0
  • tikili
    24
    2019-03-12 05:09:33

    prism패턴이라는것은 없죠 ㅋㅋㅋ 우선 eventaggregator 사용전에 subscribe받아서 넣는 부분만 테스트해보세요. 하드코딩으로고요.


    차트에 넣는게 문제인지, eventaggrator로 받아오는게문제지 부터 확인을해보아야할것같아요

    TrendEvents 내부 객체는 공용속성으로되어있나요?



    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.