如何将折线图与组合框绑定在silverlight中
本文关键字:绑定 silverlight 组合 折线图 | 更新日期: 2023-09-27 18:25:02
我在silverlght应用程序中使用图表中的两个不同系列
<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的可见性没有任何影响。
请建议我如何使用组合框来选择要在图表中显示的线系列?
感谢
在SelectionChanged事件的代码中,您从未实际设置行序列的Visibility。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;
}
}
}