Je pensais que ce devrait être une chose simple pour WPF, mais je ne peux pas le faire fonctionner ... J'ai une propriété int (Divisions) sur ma classe et je veux lier à une colonne DataGrid.WPF: comment lier une propriété numérique à DataGridTextColumn?
<DataGrid AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Number of Divisions" Binding="{Binding Path=Divisions, StringFormat={}\{0:N0\}}" IsReadOnly="True"/>
</DataGrid.Columns>
</DataGrid>
Cependant, il n'apparaît pas. J'ai aussi essayé ce code et il ne fonctionne pas pour moi non plus:
<DataGrid AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Divisions" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Divisions, StringFormat=C}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Pour les tests purpse, si j'ajoute une propriété de chaîne à cette classe pour retourner une chaîne, des divisions, cela fonctionne très bien. Alors, qu'est-ce qui ne va pas ici?
Merci beaucoup pour la réponse rapide. J'ai finalement compris. Le problème n'est pas dans StringFormat, mais parce que le "Divisions" est défini comme une variable publique memeber, pas comme une propriété publique. C'est l'un des nombreux membres de cette classe et je l'ai négligé. En fait, une fois que ceci est changé en propriété, cela fonctionne bien sans StringFormat (pour int). Je suis désolé pour la confusion. – miliu
Pas de problème, ravi de vous aider! Aussi, si cette réponse vous a aidé à résoudre votre problème, assurez-vous de cocher la case pour la marquer comme réponse acceptée! – Pwninstein