路由事件中的控件名称

Name of control in routed event

有没有办法判断哪个控件触发了路由事件?我有一个 SelectionChangedEvent 供 radgridview 上的组合框使用。我希望该事件中的编码仅处理该组合框,而不处理其他组合框。我尝试使用 e.OriginalSource.Name、ToString、sender.ToString、sender.Name 但所有 return“”。因此无法判断事件正在处理哪个组合框。

创建事件的代码:

Me.AddHandler(RadComboBox.SelectionChangedEvent, New System.Windows.Controls.SelectionChangedEventHandler(AddressOf FinishedEndsChanged))

事件中的代码:

    Private Sub FinishedEndsChanged(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)
        Try
            If dgChosenItems.SelectedItems.Count > 0 Then
                Dim comboBox As RadComboBox = CType(e.OriginalSource, RadComboBox)

                If comboBox.SelectedValue IsNot Nothing Then
                    Dim endChosen As String = CStr(comboBox.SelectedValue)

谢谢。

为您的 ComboBox 命名,以便您可以在源代码后置中使用这个唯一名称对其进行寻址。检查

If e.OriginalSource == _youridhere_ Then // If sender == ... should work as well 
    // do what you must 

风格不是很好,可能只适用于一到几个盒子...

我相信我在这里找到了答案: [https://www.telerik.com/forums/selection-changed-event-for-gridviewcombobox-column]

我选择使用 SelectedValudPath。

谢谢帕特里克花时间回复。