Que dois-je faire pour que mon contrôle WPG DataGrid soit lié à un objet DataTable?Liaison de données d'un contrôle DataGrid WPF à un objet System.Data.DataTable?
Je souffre depuis plusieurs jours maintenant. Même lorsque la liaison et la requête fonctionnent correctement, et qu'il y a des données observables dans la table, rien n'apparaît dans la grille de données.
Mon code XAML ressemble à ceci:
<Window x:Class="DataGridTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:TK="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
Title="Window1" Height="300" Width="300">
<Grid>
<TK:DataGrid ItemsSource="{Binding Path=DTUsers}" />
</Grid>
</Window>
Mon C# code-behind ressemble à ceci:
(OAC est mon Data Access Object)
public partial class Window1 : Window
{
public dao DAO = new dao (ConnectionString) ;
public System.Data.DataTable DTUsers { get; set; }
public Window1()
{
InitializeComponent();
if (DAO != null)
DTUsers = DAO.Query(@"SELECT * FROM users");
// Returns a DataTable object containing user records.
// I have confirmed that this returns my data correctly.
}
}
J'ai vérifié la sortie, et il n'y a pas d'erreurs de liaison.
Pourquoi est-ce que cela compilera et exécutera, mais n'affichera aucune donnée ??? (Si vous ne savez pas où se trouve le contrôle DataGrid, la boîte à outils WPF est disponible here. Installez-le, ajoutez une référence à WPFToolkit.dll [qui apparaîtra dans la boîte de dialogue "Ajouter une référence" sous ".NET" "], et fournir la déclaration d'espace de noms XML [dans mon code XAML ci-dessus] pour utiliser le contrôle WPG DataGrid.)
C'est tout à fait logique! Merci beaucoup! – Giffyguy
Hmm --- J'ai déplacé InitializeComponent() tout en bas du constructeur, et maintenant au moins le DataGrid est capable de se remplir avec les colonnes et les en-têtes de colonnes appropriés ... mais il ne montre toujours aucun enregistrement de données ... D'autres idées? Je vous relèverai si vous voulez donner une autre réponse. – Giffyguy
Oh, j'avais accidentellement laissé ma requête commentée ... par mauvaise. Cela fonctionne parfaitement maintenant, grâce à votre réponse! – Giffyguy