0

我正在PieChart使用 Winrt Xaml Toolkit 进行自定义,并且难以绑定到我的主要元素的属性。这是代码:

<Charting:Chart x:Name="PieChart" Title="Pie Title" Width="300" Height="300">
    <Charting:Chart.Series>
        <Charting:PieSeries Title="Population" IndependentValueBinding="{Binding Name}" DependentValueBinding="{Binding Amount}" IsSelectionEnabled="False" Width="125" Height="125" />
    </Charting:Chart.Series>
    <Charting:Chart.LegendStyle>
        <Style TargetType="datavis:Legend">
            <Setter Property="ItemContainerStyle" xmlns:series="using:WinRTXamlToolkit.Controls.DataVisualization.Charting">
                <Setter.Value>
                    <Style TargetType="series:LegendItem">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="series:LegendItem">
                                    <StackPanel Orientation="Horizontal">
                                        <datavis:Title Content="{TemplateBinding Content}" />
                                        <TextBlock Text="{Binding Amount}" />
                                    </StackPanel>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Setter.Value>
            </Setter>
        </Style>
    </Charting:Chart.LegendStyle>
</Charting:Chart>

在我的LegendItem我有一个TextBlock我想从我的元素绑定DependentValueBinding属性。Charting:PieSeries我怎样才能做到这一点?我也尝试引用元素Self但无法获取子属性。

4

2 回答 2

0

您是否尝试设置Nameof yourPieSeries和 bind by ElementName

您的代码示例片段如下:

  <Charting:Chart.Series>
    <Charting:PieSeries x:Name="MySeries" Title="Population" IndependentValueBinding="{Binding Name}" DependentValueBinding="{Binding Amount}" IsSelectionEnabled="False" Width="125" Height="125" />
  </Charting:Chart.Series>


  <ControlTemplate TargetType="series:LegendItem">
    <StackPanel Orientation="Horizontal">
        <datavis:Title Content="{TemplateBinding Content}" />
        <TextBlock Text="{Binding DependentValueBinding, ElementName=MySeries}" />
    </StackPanel>
  </ControlTemplate>
于 2015-10-05T19:26:26.903 回答
0

如果您调试 PieSeries 的可视化树 - 您会看到DataContextaLegendItem是 aPieDataPoint而不是您的项目,因此它没有Amount属性。该Title元素也具有PieDataPointas DataContext,但该Content="{TemplateBinding Content}"部分使其DataContext成为ContentPresenter您的项目。也许你可以通过这样做使它工作:

<StackPanel Orientation="Horizontal">
    <datavis:Title Content="{TemplateBinding Content}" />
    <TextBlock DataContext="{TemplateBinding Content}" Text="{Binding Amount}" />
</StackPanel>
于 2015-10-05T23:33:48.723 回答