gpt4 book ai didi

c# - 如何使 DataGrid Row 真正完全可选(点击非单元格区域)

转载 作者:行者123 更新时间:2023-11-30 22:12:54 25 4
gpt4 key购买 nike

这个问题可能有点误导。

这是具有一些虚拟值的 DataGrid 的屏幕截图(下面提供的代码) DGV

有没有办法让未被单元格覆盖的白色区域可点击?我的意图:我想要全行选择。这可以通过 SelectionUnit="FullRow" 来实现,这很好,但是我怎样才能让白色区域隐式选择整行而不用在宽度上扩展可用单元格避免代码隐藏

这是重现代码:Xaml:

<Window x:Class="DGVRowSelectTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<DataGrid ItemsSource="{Binding Names}" SelectionMode="Single" SelectionUnit="FullRow" >

</DataGrid>
</Window>

它背后的虚拟代码(只是设置了两个条目)

using System.Collections.Generic;
using System.Windows;

namespace DGVRowSelectTest
{
public partial class MainWindow : Window
{
private IList<KeyValuePair<string, string>> _names = new List<KeyValuePair<string, string>>{new KeyValuePair<string, string>("A1", "A2"),new KeyValuePair<string, string>("B1","B2")};
public IList<KeyValuePair<string, string>> Names{get { return _names; }set { _names = value; }}

public MainWindow()
{
InitializeComponent();
}
}
}

最佳答案

既然你提到了你不想扩大列宽。这可以通过一个 hacky 解决方案来实现,尽管 (通过最后提供虚拟列,没有任何绑定(bind)并将宽度设置为 *)

您必须将 AutoGenerateColumns 设置为 False,因为您现在要明确指定列。

    <DataGrid ItemsSource="{Binding Names}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Key}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Value}"/>
<DataGridTemplateColumn Width="*"/>
</DataGrid.Columns>
</DataGrid>

快照-

enter image description here

关于c# - 如何使 DataGrid Row 真正完全可选(点击非单元格区域),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19475924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com