Wpf DataGrid RowHeader

时间:2014-01-03 13:41:29

标签: wpf data-binding datagrid rowheader

我试图在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;
}

我只看到两列LArmAnglePropellerAngle是生成的DataGrid。 我想看到以下内容:

            LArmAngle PropellerAngle
aStringHere     1          0.3 
aStringHere     1          0.3 

2 个答案:

答案 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"
         >