我有一个简单的图表,其中包含两个列系列,其中包含一年中的所有月份。我想过滤列表视图,显示所选月份的详细信息。我可以通过MouseDown
上的ColumnSeries
来捕捉活动,但我不确定如何进入列系列中的月份。
<DVC:ColumnSeries Title=" Expenditures" IndependentValueBinding="{Binding Path=Month}"
DependentValueBinding="{Binding Path=Amt}"
ItemsSource="{Binding Path=ActivityExpenditureSeries}"
MouseDown="ColumnSeries_MouseDown" />
我确信我可以为列表视图ColumnSeries
选择ItemsSource
做一些花哨的WPF数据绑定,但这就是我要去的地方:
Private Sub ColumnSeries_MouseDown(ByVal sender As System.Object,
ByVal e As System.Windows.Input.MouseButtonEventArgs)
' This is the functionality I'm looking for...
Dim selectedColumn As String
FilterListView(selectedColumn)
End Sub
答案 0 :(得分:4)
在系列中设置IsSelectionEnabled=True
并在同一系列中添加SelectionChanged
个事件。
Private Sub colSeries_adjExpenditure_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs)
Dim cs As ColumnSeries = CType(sender, ColumnSeries)
Dim dp As MyDataPoint = CType(cs.SelectedItem, MyDataPoint)
End Sub
答案 1 :(得分:0)
在系列中设置IsSelectionEnabled=True
并在同一系列中添加SelectionChanged
个事件。
System.Windows.Controls.DataVisualization.Charting.ColumnSeries cs = (System.Windows.Controls.DataVisualization.Charting.ColumnSeries)sender;
System.Data.DataRowView dp = (System.Data.DataRowView)cs.SelectedItem;
tbkName.Text = dp.Row[1].ToString();
tbkSalary.Text = dp.Row[0].ToString();
答案 2 :(得分:0)
C#中的示例:
在系列中设置IsSelectionEnabled=True
并在同一系列中添加SelectionChanged
个事件。
名称空间:
using System.Windows.Controls.DataVisualization.Charting;
方法:
private void ColumnSeries_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ColumnSeries cs = (ColumnSeries)sender;
KeyValuePair<string, int> kv = (KeyValuePair<string, int>)cs.SelectedItem;
Debug.WriteLine(kv.Key);
Debug.WriteLine(kv.Value);
}
答案 3 :(得分:0)
[在C#中] 以前的答案仅允许在更改选择时单击。以下代码将使您能够独立于之前单击的位置单击列。如果需要,它还允许右键单击(更改事件类型)
<chartingToolkit:ColumnSeries DependentValuePath="Value" IndependentValuePath="Key" IsSelectionEnabled="True">
<chartingToolkit:ColumnSeries.DataPointStyle>
<Style TargetType="chartingToolkit:ColumnDataPoint">
<EventSetter Event="MouseLeftButtonUp" Handler="ColumnSeries_ColumnLeftClicked"/>
</Style>
</chartingToolkit:ColumnSeries.DataPointStyle>
</chartingToolkit:ColumnSeries>
private void ColumnSeries_ColumnLeftClicked(object sender, MouseButtonEventArgs e)
{
var key = ((ColumnDataPoint)sender).IndependentValue;
//etc
}