GridViewColumn CellTemplate Code Hinter
Ich habe eine listView, die ich konstruiere zur Laufzeit, d.h. die Spalten sind nicht bekannt, zur compile-Zeit.
Ich möchte ein DataTemplate zu den Zellen, so dass Sie die TextAlignment-Eigenschaft TextAlignment.Recht. Beim anlegen der Spalten:
foreach (var col in dataMatrix.Columns)
{
gridView.Columns.Add(
new GridViewColumn
{
Header = col.Name,
DisplayMemberBinding = new Binding(string.Format("[{0}]", count)),
CellTemplate = getDataTemplate(count),
});
count++;
}
private static DataTemplate getDataTemplate(int count)
{
DataTemplate template = new DataTemplate();
FrameworkElementFactory factory = new FrameworkElementFactory(typeof(TextBlock));
factory.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Right);
template.VisualTree = factory;
return template;
}
Den Beispiel-code von oben funktioniert nicht richtig, wie der Inhalt der Zelle ist immer noch Links ausgerichtet.
InformationsquelleAutor t.smith.htc | 2011-06-14
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie nicht mit der count-Eigenschaft in dein DataTemplate, das könnten Sie nur schaffen, die in der xaml-DataTemplate, dann wissen Sie, dass was auch immer Eigenschaften, die Sie auf das Textfeld angewendet werden. Persönlich würde ich ein Datagrid-Steuerelement und legen Sie es als nur zu Lesen. Es gibt Ihnen mehr Flexibilität für die Erstellung von dynamischen Spalten specififc Arten.
Wenn Sie DisplayMemberBinding, CellTemplate nicht verwendet werden.
Müssen Sie entfernen Sie die Zeile DisplayMemberBinding und fügen Sie die Bindung als Teil der Daten Vorlage: