I tried both answers, and neither worked for me. Essentially what I had to do was mix them together.
This works for me:
<DataGrid name="ui_dataGrid>
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type DataGridRow}},
Path=Item.Header}"/>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
</DataGrid>
The trick is to find the ancestor DataGridRow
, then Bind the TextBlock.Text
attribute to its Item's property that you care about, in this case Header
(easier said in XAML than English maybe).
Then in the .xaml.cs:
ui_dataGrid.ItemsSource = dataSource.Rows;
N.B. Each Row
object has a Header
property which is what I'm binding too.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…