路由事件中的控件名称
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。
谢谢帕特里克花时间回复。
有没有办法判断哪个控件触发了路由事件?我有一个 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。
谢谢帕特里克花时间回复。