我对WPF非常陌生.我遇到了这个问题,上面写着“下落不明的人不是路由狂”。这是我的代码:
<DataGridComboBoxColumn x:Name="Fleet_Combo" Header="Fleet" Width = "30*" ItemsSource="{Binding acTypeFleet}" SelectedItemBinding="{Binding Fleet,Mode=TwoWay}">
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<EventSetter Event="SelectionChanged" Handler="FleetComboBox_SelectionChanged"/>
<EventSetter Event="DropDownClosed" Handler="ComboBox_DropDownClosed"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>帮帮忙,谢谢。
发布于 2017-10-10 08:35:31
正如错误消息所述:DropDownClosed不是RoutedEvent,所以您不能为ComboBoxes创建样式并让它们都通过EventSetter继承事件。
调用该事件的解决方法是使用是a RoutedEvent的事件,并适当地将其挂钩。合适的人选是Loaded。按照Alain's answer here获得加载的事件:
<Style x:Key="ComboBoxCellStyle" TargetType="ComboBox">
<EventSetter Event="Loaded" Handler="ComboBox_Loaded" />
</Style>从加载的事件中,您可以到达DropDownClosed事件
private void ComboBox_Loaded(object sender, RoutedEventArgs e)
{
((ComboBox)sender).DropDownClosed -= ComboBox_OnDropDownClosed;
((ComboBox)sender).DropDownClosed += new
System.EventHandler(ComboBox_OnDropDownClosed);
}然后调用适当的处理程序:
void ComboBox_OnDropDownClosed(object sender, System.EventArgs e)
{
...
}https://stackoverflow.com/questions/46651636
复制相似问题