gpt4 book ai didi

wpf - 如何在 WPF Datagrid 的第一列中显示行号

转载 作者:行者123 更新时间:2023-12-04 13:16:56 25 4
gpt4 key购买 nike

在搜索时我发现,行号可以轻松设置为 RowHeader:

void datagrid_LoadingRow(object sender, DataGridRowEventArgs e) 
{
e.Row.Header = e.Row.GetIndex();
}

它在 RowHeader 中设置行号。但我想将行号显示到第一列

任何人都可以帮助我如何实现这一目标?谢谢

最佳答案

可能有一种更简单的方法来做到这一点,但我通过使用 DataGridRow 类上的 GetIndex() 方法让它工作。这会将索引返回到数据源,因此可能不是您所追求的。

enter image description here

xaml

  <Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Converter={local:RowToIndexConverter}}" />
</DataGrid.Columns>
<DataGrid.Items>
<sys:String>a</sys:String>
<sys:String>b</sys:String>
<sys:String>c</sys:String>
<sys:String>d</sys:String>
<sys:String>e</sys:String>
</DataGrid.Items>
</DataGrid>
</Window>

和转换器。
public class RowToIndexConverter : MarkupExtension, IValueConverter
{
static RowToIndexConverter converter;

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DataGridRow row = value as DataGridRow;
if (row != null)
return row.GetIndex();
else
return -1;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}

public override object ProvideValue(IServiceProvider serviceProvider)
{
if (converter == null) converter = new RowToIndexConverter();
return converter;
}

public RowToIndexConverter()
{
}
}

关于wpf - 如何在 WPF Datagrid 的第一列中显示行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061013/

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