我有一個彈出控件,它有一個按鈕。應該在組合框打開時顯示彈出框,並在關閉時消失。 我的代碼如下所示:帶有一個按鈕綁定到組合框的彈出控件
<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 =「假」,並與組合框事件打開彈出:
DropDownOpened =「ComboBox_Loaded_DropDownOpened」和StaysOpen =「假」
private void ComboBox_Loaded_DropDownOpened(object sender, EventArgs e)
{
myPopup.IsOpen = true;
myPopup.StaysOpen = false;
}
但隨後彈出的住宿即使我在窗口上選擇了不同的文本框並且該按鈕的點擊事件僅在兩次單擊後才被打開,也可以打開。 (如果我添加一個DropDownClosed="ComboBox_Loaded_DropDownClosed"
事件來關閉彈出窗口,再次彈出消失,然後我可以按下按鈕)。 任何人都可以幫助解決方案嗎?
謝謝您的回覆。它工作良好,但現在即使按下窗口中的另一個控件,組合框也不會關閉,並且組合框的選定值在打開組合框時未標記。 – user2155957