Получить значение по щелчку мыши для серии столбцов WPF - PullRequest
0 голосов
/ 05 октября 2010

У меня есть простой график с двумя столбцами, содержащими все месяцы года.Я хочу отфильтровать представление списка, в котором отображается подробная информация за выбранный месяц.Я могу захватить событие через MouseDown на ColumnSeries, но я не уверен, как добраться до месяца в серии столбцов.

<DVC:ColumnSeries Title=" Expenditures" IndependentValueBinding="{Binding Path=Month}"
                  DependentValueBinding="{Binding Path=Amt}"
                  ItemsSource="{Binding Path=ActivityExpenditureSeries}"
                  MouseDown="ColumnSeries_MouseDown" />

Я уверен, что мог бы сделать какой-нибудь модный WPFпривязка данных к выбранному ColumnSeries для списков просмотра ItemsSource, но вот куда я направляюсь:

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

Ответы [ 4 ]

4 голосов
/ 14 октября 2010

Установите 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
0 голосов
/ 14 сентября 2017

[In 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
}
0 голосов
/ 20 марта 2015

Пример на C #:

Установите IsSelectionEnabled=True для серии и добавьте событие SelectionChanged к той же серии.

Пространство имен:

using System.Windows.Controls.DataVisualization.Charting;

Метод: * +1010 *

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);
            }
0 голосов
/ 22 октября 2012

Установите 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...