これが私がやろうとしていることです。
トグルボタン1(editNameOpen)
- チェックすると、ポップアップコンテンツを表示します
- それを閉じる唯一の方法は、ポップアップ内の別のトグルボタン(editNameClose)からです。
トグルボタン2(editNameClose)
- これはポップアップの内側です
- IsCheckedの場合、ポップアップを閉じ、editNameOpenを閉じます
これが、ねじれを解決するために使用しているxamlです。これまでの問題/質問:
- MultiBindingが間違っており、「MultiValueConverterを指定する必要があるため、MultiBindingを設定できません」というランタイムエラーがスローされます。この場合、MultiValueConverterは何を変換しますか?
- 2番目がチェックされているときに1番目のトグルボタンを閉じるにはどうすればよいですか?
乾杯、
ベリール
<ToggleButton x:Name="editNameOpen" Style="{StaticResource EditToggleButtonStyle}" Grid.Column="1" Grid.Row="0"/>
<Popup x:Name="popupNameEditingControl"
PlacementTarget="{Binding ElementName=editeditNameOpenName}"
PopupAnimation="Slide"
StaysOpen="False" ** shoulf this be true?
MinWidth="50">
** open and stay open while until editNameClose is checked
<Popup.IsOpen>
<MultiBinding >
<Binding Mode="OneWay" ElementName="editNameOpen" Path="IsChecked"/>
<Binding Mode="OneWay" ElementName="editNameClose" Path="IsChecked" Converter="{StaticResource invertBoolConv}"/>
</MultiBinding>
</Popup.IsOpen>
** how do we reset editNameOpen to be NOT IsChecked when editNameClose is checked?
** how do we reset editNameClose to be NOT IsChecked and then reset editNameClose to also be not checked when this opens again?
<StackPanel Orientation="Horizontal" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
<Label Content="Hello Wolrd!"/>
<ToggleButton x:Name="editNameClose" Content="X"/>
</StackPanel>
</Popup>