2017-09-26 7 views
1

J'ai un LegendItemStyle dans un ColumnSeriesBoîte à outils du graphique WPF. contenu Bind Légende ColumnSeries ViewModel

<chartingToolkit:ColumnSeries DependentValuePath="Value" IndependentValuePath="Version" ItemsSource="{Binding ColumnValues}" IsSelectionEnabled="True"> 
    <chartingToolkit:ColumnSeries.LegendItemStyle> 
     <Style TargetType="chartingToolkit:LegendItem" > 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type chartingToolkit:LegendItem}"> 
         <Border BorderBrush="Black" BorderThickness="0"> 
          <StackPanel> 
           <StackPanel Orientation="Horizontal" > 
            <Rectangle Width="12" Height="12" Fill="{DynamicResource DesktopBrush}" StrokeThickness="1" /> 
            <visualizationToolkit:Title Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type chartingToolkit:ColumnSeries}},Path=DataContext.ColumnValues.Legend1, Mode=TwoWay}" Foreground="{Binding ElementName=chart,Path=Tag}" FontSize="18" Margin="10"/> 
           </StackPanel> 
          </StackPanel> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </chartingToolkit:ColumnSeries.LegendItemStyle> 
    ... 
</chartingToolkit:ColumnSeries> 

Le ColumnSeriesItemsSource est lié à la classe suivante

private ExtendedCollection columnValues = new ExtendedCollection(); 
public ExtendedCollection ColumnValues 
{ 
    get 
    { 
     return columnValues; 
    } 
    set 
    { 
     columnValues = value; 
     PropChanged("ColumnValues"); 
    } 
} 

public class ExtendedCollection : ObservableCollection<ColumnInfo> 
{ 
    public string Legend1 { get; set; } 
    public string Legend2 { get; set; } 
} 
public class ColumnInfo 
{ 
    public string Version { get; set; } 
    public string DateStamp { get; set; } 
    public int Value { get; set; } 
    public Brush BackgroundBrush { get; set; } 
    public string Platform { get; set; } 
} 

Je suis à défaut de lier la Title de LegendItemContent à la propriété Legend1 de ColumnValues dans le ViewModel

Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type chartingToolkit:ColumnSeries}},Path=DataContext.ColumnValues.Legend1, Mode=TwoWay} 

Répondre

1

essai à se lier à la DataContext de l'élément parent Legend:

xmlns:dataVisualization="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
... 
<visualizationToolkit:Title Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type dataVisualization:Legend}},Path=DataContext.ColumnValues.Legend1, Mode=TwoWay}"/>