单击“第一次不起作用”



我有一个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>

最新更新