如何为uwp/winui选择数据集中的所有行?类似于dataGrid.SelectAl();来自WPF。
我在uwp/winUI中没有发现任何关于这个的东西。
发布于 2022-10-31 00:05:51
您可以通过按控件键和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);
}
}发布于 2022-11-04 22:20:31
这个问题发生在数组中,由于某种原因,它不起作用,我只是通过单独发送密钥来解决它。
“谢谢,”阿德鲁!
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
}});https://stackoverflow.com/questions/74241068
复制相似问题