首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGrid UWP/ SelectAll函数?

DataGrid UWP/ SelectAll函数?
EN

Stack Overflow用户
提问于 2022-10-28 21:24:53
回答 2查看 51关注 0票数 0

如何为uwp/winui选择数据集中的所有行?类似于dataGrid.SelectAl();来自WPF。

我在uwp/winUI中没有发现任何关于这个的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-31 00:05:51

您可以通过按控件键和A键来选择所有项。

MainWindow.xaml

代码语言:javascript
复制
<StackPanel>
    <Button
        Click="SelectAllButton_Click"
        Content="SelectAll" />
    <controls:DataGrid
        x:Name="DataGridControl"
        ItemsSource="{x:Bind Items, Mode=OneWay}"
        SelectionMode="Extended" />
</StackPanel>

MainWindow.xaml.cs

代码语言:javascript
复制
public sealed partial class MainWindow : Window
{
    public MainWindow()
    {
        this.InitializeComponent();

        Items.Add(new Item() { Id = 0, Title = "A" });
        Items.Add(new Item() { Id = 1, Title = "B" });
        Items.Add(new Item() { Id = 2, Title = "C" });
    }

    public ObservableCollection<Item> Items { get; set; } = new();

    private void SelectAllButton_Click(object sender, RoutedEventArgs e)
    {
        this.DataGridControl.Focus(FocusState.Programmatic);

        var keys = new[]
        {
            new InjectedInputKeyboardInfo()
            {
                VirtualKey = (ushort)(VirtualKey.Control),
                KeyOptions = InjectedInputKeyOptions.None,
            },
            new InjectedInputKeyboardInfo()
            {
                VirtualKey = (ushort)(VirtualKey.A),
                KeyOptions = InjectedInputKeyOptions.None,
            },
        };

        InputInjector inputInjector = InputInjector.TryCreate();

        // Press the keys.
        inputInjector.InjectKeyboardInput(keys);

        foreach (InjectedInputKeyboardInfo key in keys)
        {
            key.KeyOptions = InjectedInputKeyOptions.KeyUp;
        }

        // Release the keys.
        inputInjector.InjectKeyboardInput(keys);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2022-11-04 22:20:31

这个问题发生在数组中,由于某种原因,它不起作用,我只是通过单独发送密钥来解决它。

“谢谢,”阿德鲁!

代码语言:javascript
复制
this.dataGrid.Focus(FocusState.Programmatic);

        var inputInjector = InputInjector.TryCreate();
        // Press the keys.
        inputInjector.InjectKeyboardInput(new[] { new InjectedInputKeyboardInfo
        {
            VirtualKey = (ushort)VirtualKey.Control,
            KeyOptions = InjectedInputKeyOptions.None
        }});

        inputInjector.InjectKeyboardInput(new[] { new InjectedInputKeyboardInfo
        {
            VirtualKey = (ushort)VirtualKey.A,
            KeyOptions = InjectedInputKeyOptions.None
        }});

        // Release the keys.
        inputInjector.InjectKeyboardInput(new[] { new InjectedInputKeyboardInfo
        {
            VirtualKey = (ushort)VirtualKey.Control,
            KeyOptions = InjectedInputKeyOptions.KeyUp
        }});

        inputInjector.InjectKeyboardInput(new[] { new InjectedInputKeyboardInfo
        {
            VirtualKey = (ushort)VirtualKey.A,
            KeyOptions = InjectedInputKeyOptions.KeyUp
        }});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74241068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档