Ich habe eine ListView, die DataTemplates verwendet. Wenn ich dies in einem ListView verwende, das die Spalten über XAML definiert, funktioniert es wie es soll. Meine DataTemplates werden aus meiner Sicht verwendet. Aber wenn ich die gleichen DataTemplates in einem zweiten ListView verwenden möchte, wo ich dem ListView neue Spalten hinzufüge, verwendet es nicht mein DataTemplate. Was soll ich machen?WPF GridViewColumn.CellTemplate DataTemplate ContentPresenter
Der Code in XAML für das erste Listview wie folgt aussieht:
<GridViewColumn x:Name="lvSecondColumn" Header="Value" Width="200">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
My-Code i zum Erzeugen einer Spalte in der zweiten Listview verwenden ist:
DataColumn dc = (DataColumn)colum;
GridViewColumn column = new GridViewColumn();
column.DisplayMemberBinding = new Binding(dc.ColumnName));
column.Header = dc.ColumnName;
TestColumns.Columns.Add(column);
TestListView.ItemsSource = dt.DefaultView;
In WPFInspector ich sehe, gibt es keine ContentPresenter in meiner dynamisch generierten Spalte. Picture from missing ContentPresenter from WPFInspector Wie kann ich den ContentPresenter zu meiner dynamischen Spalte hinzufügen ???
Danke für Ihre Antwort. Und das ist richtig. Dazu habe ich 2 ListViews zum Testen verwendet. Die eine, wo ich die Bindung von XAML verwende und es funktioniert. Der andere ListView entwirft die Spalten zur Laufzeit und das funktioniert nicht korrekt. Es erzeugt nur eine Textbox mit einem ".ToString()" Inhalt. Aber ich möchte in der dynamischen Textbox auch mein DataTemplate verwenden. Nicht das Standard-Textfeld. Also wie man den im Code einstellt? –
CPipe
Sie können Datenvorlagen dynamisch mit xamlReader pro Spalte kompilieren. Ich habe es in die Antwort eingefügt. – Dmitry
Hat es dein Problem gelöst? – Dmitry