1

ボタンのあるポップアップコントロールがあります。コンボボックスを開くとポップアップが表示され、閉じると消えます。私のコードは次のようになります。

<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」がfalseに設定されているため、クリックが発生しなくなったためだと思います。IsOpen="False" を設定し、コンボボックス イベントでポップアップを開く別のアプローチを試みます。

DropDownOpened="ComboBox_Loaded_DropDownOpened" および StaysOpen="False"

private void ComboBox_Loaded_DropDownOpened(object sender, EventArgs e)
{
   myPopup.IsOpen = true;
   myPopup.StaysOpen = false;
}

しかし、ウィンドウで別のテキストボックスを選択してもポップアップは開いたままになり、ボタンのクリックイベントは2回クリックした後にのみ発生します。(ポップアップを閉じるイベントを追加するとDropDownClosed="ComboBox_Loaded_DropDownClosed"、ボタンを押す前にポップアップが消えます)。誰でも解決策を手伝ってもらえますか?

4

1 に答える 1