2010-09-15 16 views
0

J'ai un contrôle utilisateur et en son sein j'ai deux contrôles: 1) un contrôle des critères de recherche (contrôle utilisateur personnalisé) et 2) un Telerik RadGridView. En dehors de cela, j'ai une fenêtre qui est la coquille pour mon application et il existe trois régions. Lorsque cette fenêtre s'ouvre, je clique sur un bouton et le contrôle utilisateur mentionné ci-dessus est inséré dans l'une des régions. Maintenant que le contrôle de l'utilisateur est chargé, je modifie mes critères de recherche et clique sur le bouton pour remplir ma grille avec environ 1000 enregistrements. Le problème est que la barre de défilement de la grille ne devient pas activée car le contrôle de grille maximise la taille de toutes les données qui passe devant l'écran. La seule façon dont cela fonctionne correctement est de définir la propriété Height de la grille à une valeur absolue, mais la grille ne taille pas avec la fenêtre. J'ai essayé tout ce que je peux penser: Quand dans la grille j'ai mis la taille de défilement de rangée à 200 *, j'ai mis la grille dans un panneau d'enveloppe, je l'ai placé dans un dockpanel, ai placé le VerticalAlignment pour étirer , a changé le panneau de quai pour empiler le panneau.Pourquoi ma grille wpf n'est-elle pas contenue dans son conteneur?

Shell:

<Window x:Class="WTS.CGCApplicationInterface.CGCApplicationShellView" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"    
     xmlns:cal="http://www.codeplex.com/CompositeWPF" 
     xmlns:inf="clr-namespace:WTS.CGCApplicationInterface.Infrastructure;assembly=WTSCGCApplicationInterface.Infrastructure"    
     mc:Ignorable="d" 
     d:DesignHeight="300" d:DesignWidth="300" Width="750" Height="480" 
     Title="CGC Interface Window">  
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="200*"/>    
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
    <ItemsControl cal:RegionManager.RegionName="MenuRegion" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" /> 
    <ItemsControl cal:RegionManager.RegionName="SwitchboardRegion" Grid.Column="0" Grid.Row="1" /> 
    <ItemsControl cal:RegionManager.RegionName="MainRegion" Grid.Column="1" Grid.Row="1" />        
</Grid> 

User Control:

<UserControl x:Class="WTS.CGCApplicationInterfaceMVVM.Views.Oncor.OncorTimesheetCGC" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" 
     xmlns:wtsControls="clr-namespace:WTS.CGCApplicationInterface.UserControls;assembly=WTSCGCApplicationInterface.Infrastructure"     
     mc:Ignorable="d" 
     d:DesignHeight="300" d:DesignWidth="600" Background="Red">  
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="200*" /> 
    </Grid.RowDefinitions>  

     <wtsControls:CGCQueryUserControl Grid.Row="0"/> 
     <telerik:RadGridView ItemsSource="{Binding Path=Timesheets}" AutoGenerateColumns="False" Grid.Row="1" 
           ScrollViewer.VerticalScrollBarVisibility="Visible"> 
      <telerik:RadGridView.Columns> 
       <telerik:GridViewToggleRowDetailsColumn></telerik:GridViewToggleRowDetailsColumn> 
       <telerik:GridViewDataColumn Header="MyField1" UniqueName="AssociatedObject.MyField1" IsVisible="False" /> 
       <telerik:GridViewDataColumn Header="MyField2" UniqueName="AssociatedObject.MyField2" IsVisible="False" /> 


Répondre

0

Je souhaite que je pourrais obtenir des points pour répondre à ma propre question. Je réalise que cela pourrait être utilisé. Cela dit, dans mon shell, j'ai changé la région ItemsControl à un ContentControl et cela fonctionne parfaitement.