我试图在RowHeader
wpf
中使用DataGrid
而没有运气。
我遵循了post
我的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>
Results属性指定如下
public ObservableCollection<Tuple<String, GeometryStateViewModel>> Results
{
get;
set;
}
我只看到两列LArmAngle
和PropellerAngle
是生成的DataGrid
。
我想看到以下内容:
LArmAngle PropellerAngle
aStringHere 1 0.3
aStringHere 1 0.3
答案 0 :(得分:1)
我无法找到无法显示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>
...
答案 1 :(得分:1)
我也遇到了这个问题。 “HeaderVisibility”可能默认为列。
<DataGrid
Grid.Column="0"
ItemsSource="{Binding Path=Results}"
Margin="5"
HeadersVisibility="All"
>