1
我有一個ColumnSeries
WPF圖表工具包。綁定傳說內容的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>
一個LegendItemStyle
的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
的Title
Content
到ViewModel中ColumnValues
的屬性Legend1
Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type chartingToolkit:ColumnSeries}},Path=DataContext.ColumnValues.Legend1, Mode=TwoWay}