![]() |
有情有义的汤圆 · 笑 这个字五行到底属金还是木? ...· 1 年前 · |
![]() |
有胆有识的泡面 · 万人迷竟是我自己奶油草莓52书库_头条· 1 年前 · |
![]() |
留胡子的打火机 · 國立臺灣師範大學 秘書室公共事務中心· 1 年前 · |
![]() |
老实的钥匙扣 · 漫画全集在线观看 - 哔哩哔哩漫画· 2 年前 · |
Visual Studio (2015) XAML编辑器在自动完成ComboBox成员列表中提供了一个名为
Selected
的事件。这个自动补全错误的原因是什么?
Selected
它不是WPF ComboBox事件(
event list
,而是
ComboBoxItem
的事件)(继承自
ListBoxItem.Selected
。
为什么会这样呢?
编辑
作为@glenThomas的回答(感谢),选择了来自
Selector
的附加事件,以便轻松收听所有子选择事件。
但是,
in work...
如果我在
Selected
中放了一个处理程序,然后我构建了一个项目,我会收到一个错误:
'ComboBox‘不包含'Selected’的定义,并且找不到接受类型为'ComboBox‘的第一个参数的扩展方法'Selected’
System.Windows.Controls.ComboBox
继承自具有
Selected
附加事件的
System.Windows.Controls.Primitives.Selector
。
附加事件允许您将特定事件的处理程序附加到某个子元素,而不是实际定义该事件的父元素,即使潜在引发该事件的对象和目标处理实例都没有在其命名空间中定义或以其他方式“拥有”该事件。
System.Windows.Controls.Primitives.Selector
有一个
SelectedEvent
字段,它支持
Selected
附加事件。
Selected
事件的原因是,您可以向控件添加一个事件处理程序,当许多子控件中的任何一个引发该事件时,都将执行该事件处理程序。这比将事件处理程序附加到每个
ComboBoxItem
要方便得多。
至于为什么它包含在XAML代码编辑器的intellisense中,我相信这是一个bug。
Selector
类有一个用于所选事件的公共字段:
public static readonly RoutedEvent SelectedEvent = EventManager.RegisterRoutedEvent(
"Selected", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(Selector));
但是您不能为事件添加处理程序,因为
Selector
类不像下面这样定义事件:
public event RoutedEventHandler Selected
AddHandler(SelectedEvent, value);
remove
RemoveHandler(SelectedEvent, value);
}
因此,将其包含在
ComboBox
的智能感知中是没有意义的。
但是,
ComboBoxItem
的基类
ListBoxItem
为您定义了附加处理程序的事件,因此您可以将处理程序附加到ComboBoxItems
Selected
是在
Selector
类中定义的附加事件,并且假定
与选择器项
一起使用。通常你会这样写:
<ListBoxItem Selector.Selected="OnSelected" />
如下所示,ComboBox也可以是一个条目,这就是在智能感知中列出
Selected
事件的原因:
<ListBox x:Name="Selector">
<ComboBox x:Name="Item1" />
<ComboBox x:Name="Item2" />
</ListBox>
但是,combobox必须是另一个选择器的项,才能使用所选事件:
<ComboBox x:Name="Selector1" Selector.Selected="ThisDoesNotWork"/>
<ListBox x:Name="Selector2">
<ComboBox x:Name="Item1" Selector.Selected="ThisShouldWorkButDoesnt"/>
<!-- See edit -->
<ComboBox x:Name="Item2" />
![]() |
有胆有识的泡面 · 万人迷竟是我自己奶油草莓52书库_头条 1 年前 |
![]() |
留胡子的打火机 · 國立臺灣師範大學 秘書室公共事務中心 1 年前 |
![]() |
老实的钥匙扣 · 漫画全集在线观看 - 哔哩哔哩漫画 2 年前 |