2012-02-19 58 views
1

我在silverlgiht應用如何使用silverlight中的組合框綁定折線圖?

<toolkit:Chart Grid.Column="1" Grid.Row="2" Height="300" Width="450" HorizontalAlignment="Left" Name="FarmCondtion" Title="Farm Condition" VerticalAlignment="Top" > 
    <toolkit:LineSeries x:Name="TempLine" Visibility="Visible" Title="Temprature" IndependentValueBinding="{Binding Date}" 
               DependentValueBinding="{Binding Temp}" ItemsSource="{Binding }"/> 
    <toolkit:LineSeries x:Name="MoistureLine" Visibility="Collapsed" Title="Moisture" IndependentValueBinding="{Binding Date}" 
               DependentValueBinding="{Binding Moist}" ItemsSource="{Binding }"/> 
</toolkit:Chart> 

使用圖2不同的線串聯和我使用的是組合框:

<ComboBox x:Name="FarmCombo" SelectionChanged="FarmCombo_SelectionChanged"> 
      <ComboBox.Items > 
       <ComboBoxItem Content="Temprature"></ComboBoxItem> 
       <ComboBoxItem Content="Moisture"></ComboBoxItem> 
      </ComboBox.Items> 
</ComboBox> 

我想創建一個事件FarmCombo_SelectionChanged中,我只想展示在組合框中選擇的圖表系列。

我用這個事件爲:

private void FarmCombo_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
      string selectedItem = FarmCombo.Items[FarmCombo.SelectedIndex].ToString(); 
      if (selectedItem == "Temprature") 
      { 
       TempLine.Visibility.Equals("Visible"); 
       MoistureLine.Visibility.Equals("Collapsed"); 
      } 
      else if (selectedItem == "Moisture") 
      { 
       MoistureLine.Visibility.Equals("Visible"); 
       TempLine.Visibility.Equals("Collapsed"); 
      } 
} 

但代碼不會對線系列的可見性沒有任何影響。

請建議如何使用組合框來選擇要在圖表中顯示哪一行系列?

感謝

回答

1

在你爲你從來沒有真正設置行系列的能見度SelectionChanged事件代碼。所有MoistureLine.Visibility.Equals("Visible");所做的都是返回一個布爾值,指示Visiblity是否可見,但它實際上沒有設置屬性。

此外SelectionChangedEventArgs包含已選擇的值,因此您不需要引用組合框本身來獲取此信息。

下面的代碼應該多與你要找的內容一致:

private void FarmCombo_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{   
     if(e.AddedItems.Count == 1) 
     { 
      string selectedItem = e.AddedItems[0].ToString(); 

      if (selectedItem == "Temprature") 
      { 
       TempLine.Visibility = Visibility.Visible; 
       MoistureLine.Visibility = Visibility.Collapsed; 
      } 
      else if (selectedItem == "Moisture") 
      { 
       MoistureLine.Visibility = Visibility.Visible; 
       TempLine.Visibility = Visibility.Collapsed; 
      } 
     } 
} 
+0

其仍然沒有工作 – CracLock 2012-02-19 16:52:55

+0

只是爲了仔細檢查你有沒有通過代碼的調試)看到selectedItem屬性是否被設置爲正確的字符串值?和b)看看是否正確設置了可見性? – 2012-02-19 17:45:19