我有一個RadioButton,它在打開彈出框時被選中。Popup控制鍵盤
<StackPanel>
<RadioButton x:Name="RadioButtonSave" IsChecked="{Binding IsSave}">Save</RadioButton>
<RadioButton x:Name="RadioButtonNotSave" IsChecked="{Binding IsSave,Converter={StaticResource ToNegativeConverter}}">Not Save</RadioButton>
</StackPanel>
<Popup x:Name="Popup" IsOpen="{Binding IsChecked,ElementName=RadioButtonNotSave}" StaysOpen="False" Placement="Left" PlacementTarget="{Binding ElementName=RadioButtonNotSave}">
<StackPanel>
<TextBox x:Name="PopupTextBox" />
</StackPanel>
</Popup>
<TextBox x:Name="TextBox" />
我想集中PopupTextBox打開彈出時,重點在關閉時彈出。(我的項目是鍵盤底座)文本框。
我使用這段代碼來聚焦。
public class SetFocusTrigger : TargetedTriggerAction<Control>
{
protected override void Invoke(object parameter)
{
if (Target == null) return;
Target.Focus();
}
}
,並在XAML
<i:Interaction.Triggers>
<i:EventTrigger EventName="Opened">
<local:SetFocusTrigger TargetName="PopupTexBox"/>
</i:EventTrigger>
<i:EventTrigger EventName="Closed">
<local:SetFocusTrigger TargetName="TexBox"/>
</i:EventTrigger>
</i:Interaction.Triggers>
這是確定的,但打開時彈出RadioButtonNotSave失去了檢查,並RadioButtonSave檢查!
RadioButtonNotSave lost和RadioButtonSave綁定到「IsSave」屬性(我假設用作datacontext的對象的屬性)。檢查你的代碼的哪個部分會在哪些情況下改變該屬性,並且你會知道發生了什麼。您問題中的觸發器似乎與「IsSave」屬性的操作無關。 – elgonzo