WPF饼图 - 切片不显示在图表上

WPF饼图 - 切片不显示在图表上

问题描述:

我正在尝试使用WPF饼图。问题是只有最后一片保持显示。我可以看到所有切片都显示并且立即隐藏,除了最后一个。任何想法 ?WPF饼图 - 切片不显示在图表上

<Window x:Class="ScrumApp01.WindowGraphique" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
    xmlns:DV="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
    xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
    xmlns:local="clr-namespace:ScrumApp01" 
    Title="Fenêtre graphiques SCRUM" Height="674" Width="1216" ResizeMode="CanResizeWithGrip" Name="GraphicScrum01"> 

<DVC:Chart Margin="25,268,0,0" Title="Pointe de tarte" LegendTitle="Les datas" Background="LightSteelBlue" HorizontalAlignment="Left" VerticalAlignment="Top" Height="324" Width="307"> 
<DVC:PieSeries Title="Les datas en tarte" Name="Tarte2" 
    ItemsSource="{StaticResource FruitCollection2}" 
    IndependentValueBinding="{Binding Path=sss}" 
    DependentValueBinding="{Binding Path=nnn}" > 
</DVC:PieSeries> 

private void button3_Click(object sender, RoutedEventArgs e) 
{ 
    FruitCollection2 fff = new FruitCollection2(); 
    fff.Clear(); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[0], bbb = 1, ddd = 10, sss = "Item a" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[1], bbb = 2, ddd = 9, sss = "Item b" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[2], bbb = 3, ddd = 11, sss = "Item c" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[3], bbb = 1, ddd = 14, sss = "Item d" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[4], bbb = 4, ddd = 7, sss = "Item e" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[5], bbb = 5, ddd = 1, sss = "Item f" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[6], bbb = 6, ddd = 7, sss = "Item g" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[7], bbb = 3, ddd = 6, sss = "Item h" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[8], bbb = 3, ddd = 7, sss = "Item i" }); 
    fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[9], bbb = 4, ddd = 5, sss = "Item j" }); 


    this.Tarte2.ItemsSource = fff; 

} 
+0

什么是DVC命名空间?你用的是哪张饼图? – ColinE 2012-04-11 05:04:27

+0

我编辑了代码并添加了标题 – user1325596 2012-04-11 06:09:56

+0

是“nnn”,“sss”属性还是字段?如果它的字段绑定不起作用。 – AndrewS 2013-06-07 15:59:38

你在你的图表设置的ItemsSource的方式很奇怪。这样做,这样应该工作:

在定义的类sss通过{Binding Path=sss}(基本上DVC的DataContext的:PieSeries将)被称为,声明这个属性:

private ObservableCollection<Fruit02> mFff = new ObservableCollection<Fruit02>(); 
public ObservableCollection<Fruit02> fff 
{ 
    get { return mFff; } 
} 

然后绑定您的DVC:PieSeries将的ItemSource像这样:

<DVC:PieSeries Title="Les datas en tarte" Name="Tarte2" 
    ItemsSource="{Binding Path=fff}" 
    IndependentValueBinding="{Binding Path=sss}" 
    DependentValueBinding="{Binding Path=nnn}" > 
</DVC:PieSeries> 

然后在点击处理,不创建一个新的集合,只需要修改现有的一个:

private void button3_Click(object sender, RoutedEventArgs e) 
    { 
     fff.Clear(); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[0], bbb = 1, ddd = 10, sss = "Item a" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[1], bbb = 2, ddd = 9, sss = "Item b" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[2], bbb = 3, ddd = 11, sss = "Item c" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[3], bbb = 1, ddd = 14, sss = "Item d" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[4], bbb = 4, ddd = 7, sss = "Item e" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[5], bbb = 5, ddd = 1, sss = "Item f" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[6], bbb = 6, ddd = 7, sss = "Item g" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[7], bbb = 3, ddd = 6, sss = "Item h" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[8], bbb = 3, ddd = 7, sss = "Item i" }); 
     fff.Add(new Fruit02 { nnn = this.data001.listeNombres03[9], bbb = 4, ddd = 5, sss = "Item j" }); 
    } 

假设您的DataContext设置正确,并且您的饼图控件正确实施,这应该可以工作。

+0

好吧..同样的结果......我想我会放弃! :) – user1325596 2012-04-12 03:33:38