4

DataGridwpfツールキットにインデックス列を追加して、の各データの行インデックスを表示したいだけです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>
4

3 に答える 3

4

現在、コードサンプルはありませんが、この投稿によると、「添付できるLoadingRowイベントがあります。イベントでは、イベント内のアイテムに基づいて、毎回ヘッダーを必要な数に設定できます。 args。」

それが私がそれをするために見つけることができた唯一の方法です。洗練されたXAMLソリューションはないようです。

于 2010-01-11T13:29:28.920 に答える
4

マルチバインディングとコンバーターを使用して、行のアイテムと親データグリッドにバインドできます。次に、コンバーターで、データグリッド項目の行の位置を検索します。

このページで、サンプルのWPFDatagridWithRowNumbers.zipをダウンロードします。

楽しみ!

于 2010-01-11T23:06:47.143 に答える
3

マルチバインディングとコンバーターを忘れてください。これは完全にXAMLで行うことができます。

まず、データグリッドのAlternationCountプロパティを、コレクションのcountプロパティ、またはDataGridのItems.Countプロパティのいずれかに次のようにバインドします。

<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から開始したくない場合は、代替インデックスバインディングにコンバーターを追加して、インデックスをインクリメントできます。

于 2016-11-14T21:47:00.403 に答える