我不知道是否可以做,但我会尝试。 我有以下代码的问题:
<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] }"
答案 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。