我在LegendItemStyle
ColumnSeries
<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>
ColumnSeries
ItemsSource
绑定到以下类
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; }
}
我无法将LegendItem
的{{1}} Title
绑定到ViewModel中Content
的属性Legend1
ColumnValues
答案 0 :(得分:1)
尝试绑定到父DataContext
元素的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}"/>