2017-09-19 103 views
0

我有一个扩展ObservableCollection保存的数据点加上一些额外的信息WPF图表工具包。绑定标签在ColumnDataPoint内容的ColumnSeries视图模型

public class ExtendedCollection : ObservableCollection<KeyValuePair<string, int>> 
{ 
    public string dateStamp { get; set; } 
} 

然后我也有一个ViewModel持有使用该ExtendedCollection

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

ColumnSeries最后,我试图在模板中的每个数据点的列中显示集合的属性dateStamp

<chartingToolkit:ColumnSeries Name="columnSeries" DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding ColumnValues}"> 
    <chartingToolkit:ColumnSeries.DataPointStyle> 
     <Style TargetType="chartingToolkit:ColumnDataPoint"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="chartingToolkit:ColumnDataPoint"> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="30" /> 
           <RowDefinition Height="*" /> 
          </Grid.RowDefinitions> 
          <Label Grid.Row="0" Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type chartingToolkit:ColumnSeries}},Path=dateStamp, Mode=TwoWay}"></Label> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </chartingToolkit:ColumnSeries.DataPointStyle> 
</chartingToolkit:ColumnSeries> 

我已经尝试了很多不同的Binding S为LabelContent但没有工作

回答

1

尝试改变结合 “DataContext.ColumnValues.dateStamp” 的路径:

<Label Grid.Row="0" Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type chartingToolkit:ColumnSeries}},Path=DataContext.ColumnValues.dateStamp, Mode=TwoWay}" />