2

私の DataGrid は、視覚範囲外のデータで表示されます。StackOverflow で同様の質問をいくつか調べましたが、どれも私の問題を解決していないようです。何が間違っているのかわかりません。これは私のxamlがどのように見えるかです:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="50"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>        
    <TextBlock HorizontalAlignment="Left" Foreground="{DynamicResource TitleFontColor}" 
     TextWrapping="Wrap" Text="{Binding WindowTitle}" VerticalAlignment="Center" 
     Margin="10,10,0,10" FontSize="18.667" FontFamily="Segoe UI" />
    <Border  Background="{DynamicResource pnlworkarea}" 
      Grid.Row="1" CornerRadius="2" BorderThickness="1">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="65"/>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Border BorderThickness="1" 
         Background="{DynamicResource Brush_HeaderNew}" 
         BorderBrush="{DynamicResource pnlworkareastroke}" 
         CornerRadius="2" Margin="5">
        <Grid Margin="0">
               <ListBox ItemsSource="{Binding ViewMenuItems}" SelectedItem="{Binding Viewselected}" 
                VerticalAlignment="Center" Style="{DynamicResource Content_Header_ListBoxStyle}" 
        ItemTemplate="{DynamicResource Header_DataTemplate}" 
        ItemContainerStyle="{DynamicResource ContentHeader_ListBoxItemStyle}"               
        ItemsPanel="{DynamicResource Header_ItemsPanelTemplate}" HorizontalAlignment="Left"/>                                   
    </Grid>
    </Border>
    <Grid Grid.Row="1" Margin="5">
            <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Top" Margin="10,0,0,0">
                     <ContentControl Focusable="False" Content="ContentControl"  
        Background="{DynamicResource Brush_VectorIcon}" 
       Template="{DynamicResource vector_Summary}" 
       Height="16" Margin="0,5,0,0"/>
        <TextBlock TextWrapping="Wrap" Text="{Binding SearchDisplayMessage}" Margin="5,3,0,0" VerticalAlignment="Center"/>
            </StackPanel>
        </Grid>
        <Grid Grid.Row="2" Margin="5">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <DataGrid  x:Name="dataGrid"
                    commands:ControlEvents.GridViewSelectionChangedEventCommand="{Binding SelectionItemsChangeCommand}"
                    SelectionMode="Single"
                    AutoGenerateColumns="True"                      
                    Margin="0,5" Grid.Row="1" IsReadOnly="True"
                    ItemsSource="{Binding GridItem, Mode=TwoWay}"  SelectedItem="{Binding SelectedItem}"
                    AlternatingRowBackground="#FFF5F4F8" Background="White" Grid.ColumnSpan="2"
                    ScrollViewer.CanContentScroll="True" 
                    ScrollViewer.HorizontalScrollBarVisibility="Auto" 
                    ScrollViewer.VerticalScrollBarVisibility="Auto">
                    <i:Interaction.Behaviors>
                        <Behaviors:SelectorDoubleClickCommandBehavior Command="{Binding GridDoubleclickcommand}"/>
                    </i:Interaction.Behaviors>

                </DataGrid>
            </Grid>

        </Grid>

    </Border>

</Grid>

ここでの DataGrid は、私が使用している実際の DataGrid ではないことを付け加えておきます。私のカスタム DataGrid は DataGrid から派生しています。しかし、私は通常の DataGrid でもこれを試しましたが、どちらもうまくいかないようです。

4

4 に答える 4

5

水平スクロールバーが表示されないという同様の問題がありました。「*」の幅の列がありました。これを削除すると、スクロールバーが表示されました。幅を固定に設定すると、それも表示されると思います。

于 2016-04-27T06:53:28.770 に答える
2

あなたの身長はオートです

<Grid Grid.Row="2" Margin="5">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <DataGrid  x:Name="dataGrid"
                    SelectionMode="Single"
                    AutoGenerateColumns="True"                      
                    Margin="0,5" Grid.Row="1" IsReadOnly="True"
                    ItemsSource="{Binding GridItem, Mode=TwoWay}"  SelectedItem="{Binding SelectedItem}"
                    AlternatingRowBackground="#FFF5F4F8" Background="White" Grid.ColumnSpan="2"
                    ScrollViewer.CanContentScroll="True" 
                    ScrollViewer.HorizontalScrollBarVisibility="Auto" 
                    ScrollViewer.VerticalScrollBarVisibility="Auto">
                </DataGrid>
            </Grid>

への変更

<DataGrid Grid.Row="2"  x:Name="dataGrid"
                    SelectionMode="Single"
                    AutoGenerateColumns="True"                      
                    Margin="0,5" Grid.Row="1" IsReadOnly="True"
                    ItemsSource="{Binding GridItem, Mode=TwoWay}"  SelectedItem="{Binding SelectedItem}"
                    AlternatingRowBackground="#FFF5F4F8" Background="White" Grid.ColumnSpan="2"
                    ScrollViewer.CanContentScroll="True" 
                    ScrollViewer.HorizontalScrollBarVisibility="Auto" 
                    ScrollViewer.VerticalScrollBarVisibility="Auto">
                </DataGrid>
于 2012-05-11T19:06:30.480 に答える