Как выбрать все строки в сетке данных для uwp/winui? Аналогично dataGrid.SelectAl(); из ВПФ.
Я ничего не нашел об этом в uwp/winUI
из набора инструментов сообщества





Вы можете выбрать все элементы, нажав клавишу Control и клавишу A.
MainWindow.xaml
<StackPanel>
<Button
Click = "SelectAllButton_Click"
Content = "SelectAll" />
<controls:DataGrid
x:Name = "DataGridControl"
ItemsSource = "{x:Bind Items, Mode=OneWay}"
SelectionMode = "Extended" />
</StackPanel>
MainWindow.xaml.cs
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);
}
}
Проблема была в массиве, он почему-то не работал, решил просто отправив ключи по отдельности
Спасибо, @Андрю!
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
}});
В настоящее время в UWP или WinUI нет элемента управления сеткой данных. Вы говорите об управлении сеткой данных из Community Toolkit или какой-то сторонней библиотеки?