【发布时间】:2013-04-06 12:24:21
【问题描述】:
我有一个弹出控件,里面有一个按钮。打开组合框时应显示弹出窗口,关闭时应消失。 我的代码如下所示:
<Popup Name="myPopup" IsOpen="{Binding Path=IsDropDownOpen, ElementName=combo}"
Placement="Right" PlacementTarget="{Binding ElementName=combo}"
StaysOpen="False" Focusable="False"
AllowsTransparency="True" PopupAnimation="Fade" >
<Button Click="Popup_Click">
<Image Source="..\Images\edit.png" Height="30"/>
</Button>
</Popup>
<ComboBox Name="combo" SelectedValuePath="Key" DisplayMemberPath="Value"
Loaded="ComboBox_Loaded" SelectedValue="{Binding FamilyStatus}">
</ComboBox>
以及功能:
private void ComboBox_Loaded(object sender, RoutedEventArgs e)
{
combo.ItemsSource = GetComboValues();
}
在这段代码中我有一个问题: 当组合框打开时显示弹出窗口,当组合框关闭但单击按钮(从弹出窗口内部)未触发时关闭!我猜这是因为当鼠标移动到按钮时,弹出窗口的“IsOpen”设置为假,因此不再触发点击。 我尝试使用不同的方法设置 IsOpen="False" 并使用组合框事件打开弹出窗口:
DropDownOpened="ComboBox_Loaded_DropDownOpened" 和 StaysOpen="False"
private void ComboBox_Loaded_DropDownOpened(object sender, EventArgs e)
{
myPopup.IsOpen = true;
myPopup.StaysOpen = false;
}
但是,即使我在窗口上选择了不同的文本框,弹出窗口也会保持打开状态,并且仅在两次单击后才会引发按钮的单击事件。 (如果我添加一个DropDownClosed="ComboBox_Loaded_DropDownClosed" 事件来关闭弹出窗口,弹出窗口会在我按下按钮之前再次消失)。
有人可以帮忙解决吗?
【问题讨论】:
标签: wpf combobox popupwindow buttonclick