执行单击网格中的按钮

Perform Click on button in a grid

我是 UWP/XAML 的新手,但我使用 .NET 已经有一段时间了。我有如下问题。

我有一个显示客户页面的应用程序。我添加了一个 VariableSizedWrapGrid 并调用了一个 sub 来用按钮填充它,如下所示:

<VariableSizedWrapGrid x:Name="FirstChars" Orientation="Horizontal"/>

       // Create first button '#' with character and Click event and add to grid
        ToggleButton btn = new ToggleButton { Content = '#', Margin = new Windows.UI.Xaml.Thickness(2, 0, 0, 0), Width = 34 };
        btn.Click += FirstChars_Click;
        FirstChars.Children.Add(btn);
        // Create all alphabets buttons and Click event and add to grid
        char[] az = Enumerable.Range('A', 'Z' - 'A' + 1).Select(i => (Char)i).ToArray();
        foreach (var c in az)
        {
            btn = new ToggleButton { Content = c, Margin = new Windows.UI.Xaml.Thickness(2, 0, 0, 0), Width = 34 };
            btn.Click += FirstChars_Click;
            FirstChars.Children.Add(btn);
        }

当用户进入该页面时,没有按钮被 select 编辑,我想在第一个按钮上执行点击事件 "A" 这样我就可以执行适当的 Select 查询我的数据库。

如何 select 按钮并在页面加载后调用适当的事件?

我猜我需要定义一个 ToggleButton 变量和 select 具有内容 "A" 的网格中的按钮。但经过多次尝试,我无法理解如何做到这一点:(

感谢您的帮助!

应该有一些方法,比如 Loaded 或 Initialized,你为什么不从事件处理程序中提取你想要的东西 运行 到一个单独的方法中,然后从两个地方调用它?

在 foreach 循环后的构造函数中,您可以像这样订阅 Loaded 事件

this.Loaded += OnPageLoaded;

订阅上述事件后,您可以检查是否加载 "A" 切换按钮的内容,并在页面启动时加载其信息。

private void OnPageLoaded(object sender, RoutedEventArgs e)
{
    foreach (var item in FirstChars.Children)
    {
        if (item is ToggleButton button && button.Content.ToString().Equals("A"))
        {
            button.IsChecked = true;
            // Perform your query here or call the appropriate method
            break;
        }
    }
}

希望对你有所帮助