Ich versuche ein TreeView mit SubItems zu erstellen. Die Items werden richtig angezeigt. Die Anzahl der SubItems stimmt auch, aber der Text ist nicht sichtbar (siehe screenshot unten)
<TreeView ItemsSource="{Binding mStatistik}" Margin="10" Height="200" Name="treeViewDl">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding mDateien2}" >
<TreeViewItem Header="{Binding mIp}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
// vereinfachte Kurzfassung vom Quellcode
public class Statistik
{
public string mIp { get; set; }
public ObservableCollection<DateTime> mDateien2{ get; set; }
.....
}
private void DateiAnzeigen()
{
// vereinfachte Kurzfassung vom Quellcode
Statistik s = new Statistik();
s.mIp ="1:14352342";
s.mDateien2.Add("def");
s.mDateien2.Add("def1");
s.mDateien2.Add("def2");
s.mDateien2.Add("defsfsadfjhasdhfoauiwheriulheh3");
s.mDateien2.Add("def2");
mStatistik.Add(s);
.........
}
Hallo,
Du kannst ja mal folgende Methode ausprobieren (Method 2) und gucken was mIp für werte hat:
Use a ValueConverter to break into the debugger
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"
Danke ProGamer habs gelöst
Die Lösung, falls es jemandem etwas bringt:
<Window.Resources>
<local:DatabindingDebugConverter x:Key="debugConverter" />
<Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}">
<Setter Property="HorizontalContentAlignment" Value="Left" /> <!-- Sonst gibts ne menge Fehlermeldungen siehe weiter unten-->
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
</Window.Resources>
<Grid>
<TreeView ItemsSource="{Binding mStats}" Margin="0,0,0,66" Name="tvDownloads" FontFamily="Courier New" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding SubItems, Converter={StaticResource debugConverter}}" >
<TextBlock Text="{Binding Ip, FallbackValue=error2}" /> <!--TextBlock für Ip-->
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Dateien, FallbackValue=error}" > <!--TextBlock für Dateien eingefügt-->
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="FontFamily" Value="Courier New"/>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
Fehlermeldungen falls "HorizontalContentAlignment" nicht gesetzt:> Fehlermeldung:
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=VerticalContentAlignment; DataItem=null; target element is 'TreeViewItem' (Name=''); target property is 'VerticalContentAlignment' (type 'VerticalAlignment')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'TreeViewItem' (Name=''); target property is 'HorizontalContentAlignment' (type 'HorizontalAlignment')
public class Statistik
{
private string Ip { get; set; }
public string Dateien { get; set; }
public ObservableCollection<Statistik> SubItems { get; set; } // Subitems ebenfalls als ObservableCollection
....
}
public static ObservableCollection<Statistik> mStats = new ObservableCollection<Statistik>();