我试图在wpf
DataGrid
中使用RowHeader
,但没有运气。
我关注了这篇文章
我的 XAML 代码
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DataGrid Grid.Column="0" ItemsSource="{Binding Path=Results}" Margin="5">
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type DataGridRow}},
Path=Item.Item1}"/>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
<DataGrid.Columns>
<DataGridTextColumn Header="LArmAngle"
Binding="{Binding Item2.LArmAngle}" />
<DataGridTextColumn Header="PropellerAngle"
Binding="{Binding Item2.PropellerAngle}" />
</DataGrid.Columns>
</DataGrid>
...
</Grid>
结果属性指定如下
public ObservableCollection<Tuple<String, GeometryStateViewModel>> Results
{
get;
set;
}
我只看到两列LArmAngle
,PropellerAngle
是结果DataGrid
.我希望看到以下内容:
LArmAngle PropellerAngle
aStringHere 1 0.3
aStringHere 1 0.3
我也遇到了这个问题。 "标题可见性"可能默认为列。
<DataGrid
Grid.Column="0"
ItemsSource="{Binding Path=Results}"
Margin="5"
HeadersVisibility="All"
>
我找不到为什么我不能显示 RowHeader。作为解决方法,我在数据网格中添加了一列额外的列来显示我想要的刺痛。
...
<DataGrid Grid.Column="0" ItemsSource="{Binding Path=Results}" Margin="5">
<DataGrid.Columns>
<DataGridTextColumn Header="Algorithm"
Binding="{Binding Item1}" />
<DataGridTextColumn Header="LArmAngle"
Binding="{Binding Item2.LArmAngle}" />
<DataGridTextColumn Header="PropellerAngle"
Binding="{Binding Item2.PropellerAngle}" />
</DataGrid.Columns>
</DataGrid>
...