【问题标题】:WPF Chart Toolkit. Bind Legend content to ColumnSeries ViewModelWPF 图表工具包。将图例内容绑定到 ColumnSeries ViewModel
【发布时间】:2017-09-26 12:39:29
【问题描述】:

我在ColumnSeries 中有一个LegendItemStyle

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

我无法将 LegendItemTitle Content 绑定到 ViewModel 中 ColumnValues 的属性 Legend1

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

【问题讨论】:

    标签: c# wpf mvvm wpftoolkit


    【解决方案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}"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-26
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      • 2013-06-12
      相关资源
      最近更新 更多