WpfToolkit图表DependentValue动态

时间:2014-04-09 19:41:01

标签: wpf bar-chart toolkit

我不知道是否可以做,但我会尝试。 我有以下代码的问题:

      <charts:Chart Grid.Row="0" Height="262" HorizontalAlignment="Left" 
              Title="Column Series Demo" 
            VerticalAlignment="Bottom" Width="360">
                <charts:ScatterSeries
DependentValueBinding= "{Binding ElementName=XAxisCb,Path=SelectedItem}"
IndependentValueBinding= "{Binding ElementName=YAxisCb,Path=SelectedItem}"
x:Name="Series" 
DataPointStyle="{StaticResource RingChartSymbolStyle}" 
ItemsSource="{Binding Patterns}"  />
            </charts:Chart>

  <ComboBox x:Name="XAxisCb"  ItemsSource="{Binding DependentNamesX}" SelectedItem="{Binding DependentNameX,Mode=TwoWay}"/>
  <ComboBox x:Name="YAxisCb" ItemsSource="{Binding InDependentNamesY}" SelectedItem="{Binding InDependentNameY,Mode=TwoWay}"/>

public class Pattern
{
  public List<IFeature> Features
        {
            get { return _features; }
            set { _features = value; }
        }
}

 public interface IFeature
    {
         string Name { get; set; }
        double Value { get; set; }
    }

如果我有类Point,我只需将X轴设置为属性X,将Y轴设置为属性Y. 现在我有Pattern类,其中包含List<IFeature>,表示属性列表。 如何将DependentValueBinding和IndependentValueBinding设置为例如从特征到X(Pattern.Features [0])的第一个属性和第二个属性到Y(每个模式中的Patter.Features [1]?

例如:

 DependentValueBinding= "{Binding Features[0]}"
 IndependentValueBinding= "{Binding Features[1] }"

2 个答案:

答案 0 :(得分:0)

看起来你可以使用数据模板,虽然这个问题有点不清楚。

在您窗口的资源中:

<DataTemplate x:Key="PatternsDataTemplate">
 <ComboBox ItemsSource="{Binding Features}" ItemTemplate="{StaticResource FeaturesDataTemplate}"/>
</DataTemplate>

<DataTemplate x:Key="FeaturesDataTemplate">
  <Grid>
    <TextBlock Text="{Binding Name}"/>
    <TextBlock Text="{Binding Value}"/>
  </Grid>
</DataTemplate>

然后在图表之后你可以做这样的事情......

<ComboBox ItemsSource="{Binding Patterns}" ItemTemplate="{StaticResource PatternsDataTemplate}"/>

不确定你是否想在组合框中使用组合框或者你想要做什么,但如果我对这个问题有足够的了解,这应该会给你一个要点

答案 1 :(得分:0)

解决方案非常简单:)

 IndependentValueBinding="{Binding Features[0].Value}"
 DependentValueBinding="{Binding Features[1].Value}"

编辑:我以为我可以通过使用属性或转换器参数来获取实际元素,但两者都受到限制。所以这不是最终解决方案。我不知道如何绑定功能[i],我依赖于UI。