La liaison WPF DataGrid à DataTable à l'aide de TemplateColumns

J'ai tout essayé et suis nulle part, donc je suis en espérant que quelqu'un peut me donner le moment aha.
Je ne peut tout simplement pas obtenir la liaison pour extraire les données dans la grille de données avec succès.

J'ai une Table qui contient plusieurs colonnes avec des MyDataType

public class MyData
{
    string nameData {get;set;}
    bool showData {get;set;}
}

MyDataType a 2 propriétés (Une chaîne de caractères, booléen)
J'ai créé un test DataTable

DataTable GetDummyData()
{
    DataTable dt = new DataTable("Foo");
    dt.Columns.Add(new DataColumn("AnotherColumn", typeof(MyData)));
    dt.Rows.Add(new MyData("Row1C1", true));
    dt.Rows.Add(new MyData("Row2C1", false));
    dt.AcceptChanges();
    return dt;
}

J'ai un WPF DataGrid qui je veux montrer ma DataTable.
Mais tout ce que je veux faire est de changer la façon dont chaque cellule est rendu à montrer [TextBlock][Bouton] par cellule avec les valeurs liées à la MyData objet et c'est là que je vais avoir une tonne de problèmes.

Mon XAML ressemble à ceci

<Window.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="MyDataTemplate" DataType="MyData">
            <StackPanel Orientation="Horizontal" >
                <Button Background="Green" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5,0,0,0" Content="{Binding Path=nameData}"></Button>
                <TextBlock Background="Green" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,0,0" Text="{Binding Path=nameData}"></TextBlock>
            </StackPanel>
        </DataTemplate>
    </ResourceDictionary>
</Window.Resources>
<Grid>
    <dg:DataGrid Grid.Row="1" ItemsSource="{Binding}" AutoGenerateColumns="True"
                 x:Name="dataGrid1" SelectionMode="Single" CanUserAddRows="False"
                 CanUserSortColumns="true" CanUserDeleteRows="False" AlternatingRowBackground="AliceBlue"
                 AutoGeneratingColumn="dataGrid1_AutoGeneratingColumn" />
</Grid>

Maintenant tout ce que je fais une fois le fichier chargé est de tenter de lier le DataTable à la WPF DataGrid

dt = GetDummyData();
dataGrid1.ItemsSource = dt.DefaultView;

Le TextBlock et Bouton montrer, mais ils ne se lient pas, ce qui leur laisse du vide.
Quelqu'un pourrait-il me faire savoir si ils ont une idée de comment résoudre ce problème.
Cela devrait être simple, c'est ce que Microsoft nous pousse à le croire.
J'ai mis le Column.CellTemplate au cours de la AutoGenerating événement et vous ne recevez toujours pas de liaison.

S'il vous plaît aider!!!

Avez-vous essayer le réglage de la table de GetDummyData que la grille de données.DataContext?
Déjà fait et toujours la même chose. Rien ne change sur le UIElements comme ils semblent être indépendant. J'ai essayé d'utiliser le AutoGeneratingColumn Événement pour définir mon propre Colonne.CellTemplate et toujours rien. D'autres idées? Merci Merci
Essayez ceci: C# Lire Excel et Montrer dans WPF DataGrid

OriginalL'auteur Chris J | 2010-04-20