Ce semblent être un problème connu avec DataGrid WPF. Voir la discussion here (à partir du 4ème commentaire) Aussi, il semble être corrigé dans .net 4. J'ai fait quelques tests pour ce problème sur les frameworks 3.5 et 4 (beta2). Pls, voir les résultats ci-dessous:
D'abord je définissais 3 types de collections d'objets:
public class TestGridItems0 : ArrayList
{
}
public class TestGridItems1 : List<TestGridItem>
{
}
public class TestGridItems2<T> : List<TestGridItem>
{
}
où TestGridItem est ci-dessous:
public class TestGridItem
{
public string One { get; set; }
public string Two { get; set; }
public string Three { get; set; }
}
.net 3.5
TestGridItems0 et TestGridItems1 n'a pas montré une ligne vide pour une collection vide; où TestGridItems2 a bien fonctionné.
.net 4
seulement TestGridItems0 ne montre pas la ligne de la collection vide; 2 autres ont bien fonctionné.
XAML pour la grille:
<my:DataGrid Name="dataGrid" AutoGenerateColumns="False" CanUserAddRows="True">
<my:DataGrid.Columns>
<my:DataGridTextColumn Binding="{Binding One}" Header="One" />
<my:DataGridTextColumn Binding="{Binding Two}" Header="Two" />
<my:DataGridTextColumn Binding="{Binding Three}" Header="Three" />
</my:DataGrid.Columns>
</my:DataGrid>
ci-dessous comment les éléments source a été attribué:
dataGrid.ItemsSource = new TestGridItems0();
dataGrid.ItemsSource = new TestGridItems1();
dataGrid.ItemsSource = new TestGridItems2<TestGridItem>();
espérons que cette aide, ce qui est
En outre, ce qui se passe est que vous ne pouvez pas faire défiler vers la droite pour voir les colonnes qui sont hors de l'écran, parce que vous n'avez pas de barres de défilement horizontales sans éléments. –