2017-09-26 62 views
1

我有一個ColumnSeriesWPF圖表工具包。綁定傳說內容的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> 

一個LegendItemStyleColumnSeriesItemsSource綁定到下面的類

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; } 
} 

我無法綁定LegendItemTitleContent到ViewModel中ColumnValues的屬性Legend1

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

回答

1

嘗試綁定到父Legend元件的DataContext

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}"/>