我有一个Windows Phone应用程序。
每当我将按钮可见性设置为折叠并使其再次可见时,我都必须单击它两次才能让它触发它绑定到的命令。如何在第一次后再次触发它?它甚至第一次根本没有命中任何代码。可见性和按钮命令都是通过将其绑定到视图模型属性来设置的。
我猜你使用的是 MVVM light?
如果是这样,我在使用 ICommand 时遇到了一些类似的问题。如果您只使用内置的中继命令,那么这为我解决了问题。
我认为问题来自"焦点"问题。我怀疑焦点被可见性的变化所混淆。然后使用第一次单击来恢复焦点。
为了避免这个问题,我在更改可见性后强制焦点在按钮上
private void RequestDialogBoxEvent(object sender)
{
this.DialogBox.Visibility = System.Windows.Visibility.Visible;
this.buttonOK.Focus();
}
使用对话框的 XAML:
<Border x:Name="DialogBox" Background="Black" Grid.Row="1" Visibility="Collapsed" >
<Grid Margin="0,20" VerticalAlignment="Center" Background="Black">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="Confirm ?" />
<Button x:Name="buttonOK" Content="OK" Grid.Row="1" Click="Button_Click" />
</Grid>
</Border>