2014-12-14 2 views
0

XCeed Extended Toolkit Plus를 사용하고 있습니다. 구체적으로 차트. 그러나 나는이 컨트롤에 대해 구체적으로 질문 할 필요가 없다고 생각합니다. 컨트롤과 템플릿간에 값을 전달하거나 공유하는 방법에 대해 자세히 설명합니다.템플릿에 값을 제공하는 방법

차트는 WPF UserControl에 있지만 값은 코드 뒤에 설정됩니다. 데이터 바인딩이나 MVVM이 없으며 더 많은 'winforms'접근 방식이 있습니다.

차트 작업이 작동하지만 바의 막대 그래프가 표시되는 방식을 변경하고 싶습니다.

이 문서에 따르면, 나도 같은 XAML 페이지 템플릿

<xctk:Chart > 
      <xctk:Chart.Areas> 
       <xctk:Area x:Name="MyGraphArea"> 
        <xctk:Area.XAxis> 

         <xctk:Axis Title="Date" 
            /> 
        </xctk:Area.XAxis> 
        <xctk:Area.YAxis> 
         <xctk:Axis Title="Position" 
            /> 
        </xctk:Area.YAxis> 
        <xctk:Area.Series> 
         <xctk:Series Template="{StaticResource SeriesTemplate}" > 
          <!--done in code behind--> 
         </xctk:Series> 
        </xctk:Area.Series> 
       </xctk:Area> 
      </xctk:Chart.Areas> 
     </xctk:Chart> 

을 사용할 수 있습니다, 나 또한 내 Grid.Resources에 있습니다. 문제 내가 문제에 봉착 곳

public GraphView(IEnumerable<DataPoint> graphData, string title) 
    { 
     InitializeComponent(); 

     var series = new Series(); 

     foreach (var dataPoint in graphData) 
     { 
      series.DataPoints.Add(dataPoint); 
     } 
     series.Title = title; 

     this.MyGraphArea.Series.Add(series); 
    } 

그래서, DataTemplate을이

<DataTemplate x:Key="SeriesTemplate"> 
      <Button x:Name="Bar"> 
       <StackPanel> 
        <DockPanel> 
         <TextBlock x:Name="seriesTemplateDate" Text="How To I Bind"></TextBlock> 
        </DockPanel> 
        <DockPanel> 
         <TextBlock x:Name="seriesTemplatePosition" Text="What Am I binding too"></TextBlock> 
        </DockPanel> 
       </StackPanel> 
      </Button> 
     </DataTemplate> 

입니다 그리고 뒤에 내 코드에서 (생성자를 표시) 곳이다. text 값을

값으로 추가 할 수 있다고 생각하지 않습니다. 각 반복마다 호출되는 이름이기 때문에 코드에서 값을 추가 할 수 있다고 생각하지 않습니다 (항목 수에 따라 다름). 시리즈).

DataTemplate이 호출 컨트롤에서 어떻게 상속받을 수 있는지는 내 머리 속에있는 유일한 방법입니다. 이 단계에서 내 Google 검색 결과는 아무런 유용성을 제공하지 못했고 혼란스러워졌습니다.

답변

0

XCeed Extended Toolkit Plus를 모르기 때문에 추측해야합니다. 즉, Datatemplate의 Datacontext는 일반적으로 데이터 개체로 설정됩니다. 이 경우에는 series 객체 여야합니다. 즉, Title 속성과 같은 시리즈 개체의 속성에 직접 바인딩 할 수 있습니다. 어쩌면 날짜와 위치 속성도있을 것입니다!

series.Title = title; 
series.Date = date; 
series.Position = position; 

<TextBlock x:Name="seriesTemplateTitle" Text="{Binding Title}"></TextBlock> 
<TextBlock x:Name="seriesTemplateDate" Text="{Binding Date}"></TextBlock> 
<TextBlock x:Name="seriesTemplatePosition" Text="{Binding Position}"></TextBlock> 

행운을 빌어 요!

관련 문제