我在silverlgiht应用程序中使用2个不同的系列图表
<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>
我正在使用一个组合框:
<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");
}
}
但是代码对Line Series的可见性没有任何影响。
请建议我如何使用组合框选择要在图表中显示的线系列?
由于
答案 0 :(得分: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;
}
}
}