2012-02-19 12 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つの異なるラインシリーズを使用していると私は、コンボボックス使用しています:私はのみが表示したいイベントFarmCombo_SelectionChangedを作成したい

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

をコンボボックスでセレクションされているチャートのラインセリエ。

私は、このイベントを使用:

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"); 
      } 
} 

しかし、コードはラインシリーズの可視性には影響しません。

お勧めしますどのコンボボックスを使用してチャートに表示するラインシリーズを選択することができますか?

おかげで、あなたが実際にラインシリーズの可視性を設定することはありませんSelectionChangedイベントのために、あなたのコードで

答えて

1

。すべてMoistureLine.Visibility.Equals("Visible");は、VisiblityがVisibleであるかどうかを示すブール値を返します。実際にはプロパティを設定しません。

さらに、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

そのまだだけのSelectedItemに設定されているかどうか)あなたがにコードをデバッグしているダブルチェックに – CracLock

+0

を動作していません正しい文字列値ですか? b)可視性が線で正しく設定されているかどうかを確認します。 –

関連する問題