practical Как показать индекс строки для wpf toolkit datagrid?




wpf toolkit установка (3)

вы можете использовать multibinding и конвертер для привязки к элементу в строке и родительскому datagrid. то в конвертере вы просматриваете позицию строки в элементах данных.

На этой странице скачать образец WPFDatagridWithRowNumbers.zip

Наслаждайтесь!

Я просто хочу добавить индексный столбец в инструментарий DataGrid инструментария wpf, чтобы показать индекс строки каждого из данных в DataGrid . Как?

<dg:DataGrid ItemsSource="{Binding List}"                              
             SelectionMode="Extended"
             IsReadOnly="True"
             AutoGenerateColumns="False"
             HorizontalAlignment="Left">
    <dg:DataGrid.Columns>

        **<dg:DataGridTextColumn Header="Row Index"></dg:DataGridTextColumn>**
        <dg:DataGridTextColumn Header="Branch"
                               Binding="{Binding Branch.Id}"></dg:DataGridTextColumn>
        <dg:DataGridTextColumn Header="Count"
                               Binding="{Binding RequestCount}"></dg:DataGridTextColumn>
    </dg:DataGrid.Columns>
</dg:DataGrid>

Answer #1

Сейчас у меня нет образца кода, но в дополнение к этому сообщению есть «событие LoadRow, к которому вы можете подключиться. В случае, если вы можете каждый раз устанавливать заголовок на нужный номер на основе элемента в событии арг «.

Это единственный способ найти это. Кажется, нет элегантного решения XAML.


Answer #2

Забудьте многосвязывание и конвертеры. Вы можете сделать это полностью в XAML.

Во-первых, привяжите свойство AlternationCount вашей сетки данных либо к свойству count вашей коллекции, либо к свойству Items.Count вашего DataGrid следующим образом:

<dg:DataGrid AlternationCount="{Binding List.Count}" />

Или:

<dg:DataGrid AlternationCount="{Binding Items.Count, RelativeSource={RelativeSource Self}" />

Либо надо работать.

Затем, предполагая, что вы используете DataGridTextColumn для своего левого столбца, вы делаете следующее в определении DataGrid.Columns:

<dg:DataGrid.Columns>
   <dg:DataGridTextColumn Binding="{Binding AlternationIndex, RelativeSource={RelativeSource AncestorType=DataGridRow}}"
</dg:DataGrid.Columns>

Если вы не хотите начинать с 0, вы можете добавить конвертер к привязке индекса альтернативности для увеличения индекса.