2013-05-01 6 views
0

신호 생성기 프로젝트에서 작업 중이며 Infragistics XamDataChart의 작동 방식을 이해하기가 매우 어렵습니다.WPF에서 XamDataChart를 사용하여 신호 표시

프로젝트는 MainWindow가 ViewModel에 바인딩 된 WPF 및 MVVM 모델을 사용합니다.이 모델은 모델 클래스 (내 경우 SigGenChannel.cs)에서 모든 데이터를 가져오고, 모든 신호 값과 타이밍 및 새로 고침이 수행됩니다 모델 클래스에서 수행하고 MainWindow로 다시 묶었습니다. MainWindow에는 현재 값 (신호 값)을 표시하는 텍스트 필드가 있으며 100ms에서 자동 새로 고침이됩니다.

그래서 두 값은 현재 신호 값 (CurrentValue)과 현재 시간 (CurrentStepTime)입니다.이 두 데이터 포인트를 매핑하고 텍스트 필드와 동일한 속도로 새로 고치려면 XamDataChart를 어떻게 사용할 수 있습니까? 차트의 데이터를 신호 파형으로 표시합니까? 어떤 도움

감사하고, 바운드 수집 것을 제공, 당신이 어떤 특정 코드는 바운드 수집의 항목을 변경할 경우 XamDataChart가 자동으로 일련의 시각을 새로 고쳐집니다

답변

2

을 니펫이 필요하면 알려 주시기 바랍니다 INotifyCollectionChanged를 구현합니다. "Scrolling Window"효과를 표시하지 않으려면 컬렉션의 끝에 새 포인트를 추가하고 컬렉션의 헤드에서 포인트를 제거하면 데이터가 오른쪽에서 왼쪽으로 스크롤되는 것처럼 보입니다.

X 축은 TIME이므로 시리즈를 설정하는 방법에는 두 가지 옵션이 있습니다. 문자열 값으로 시간을 처리하는 CategoryXAxis를 사용할 수 있으며 각 데이터 포인트는 이전 샘플링과 등거리입니다 (일정한 샘플링 속도를 사용하는 경우에도 적합 함). 그렇지 않은 경우 CategoryDateTimeXAxis를 사용할 수 있습니다 일정한 샘플링 속도와 시간 값과 동일한 수평 위치에 정확하게 값을 표시하려고합니다. 두 경우 모두 Axis의 ItemsSource에 데이터를 바인딩하여 축에 얼마나 많은 항목이 있는지 파악하고 레이블을 검색 할 수 있습니다. CategoryXAxis의 경우 레이블은 CurrentStepTime에서 가져와야 함을 나타내지 만 CategoryDateTimeXAxis의 경우 CurrentTimeTime을 DateTimeMemberPath에 사용해야한다고 지정할 수도 있습니다.

CategoryDateTimeXAxis를 사용할 때의 단점은 CategoryXAxis보다 효율적이지 않기 때문에 일정하지 않은 시간 샘플링이 필요하지 않다면 후자를 고수 할 것입니다.

두 경우 모두 라인 (또는 다른 카테고리) 시리즈를 만들고 데이터를 ItemsSource에 바인딩하고 ValueMemberPath를 CurrentValue로 설정합니다.

나는이 샘플이 더 일을 명료하게 할 수 있습니다 가정 http://www.infragistics.com/products/silverlight/sample/data-chart/#/binding-real-time-data

+0

감사합니다! 나는 관찰 가능한 컬렉션을 만들고 10 개의 데이터 포인트가 콜렉션에 추가 된 후 첫 번째 포인트를 제거하고 그 콜렉션을 데이터 마트에 바인딩함으로써 마침내 작동하게했습니다. – Balaal