Zasadniczo w potrzebie, aby osiągnąć coś takiego przy użyciu kontroli TreeView w WPF: (Random picture)Wyświetlacz TreeViewItem jak wierszy siatki w WPF
http://blogs.msdn.com/blogfiles/delay/SimpleTreeGridUX.png
Gdzie węzły i węzły potomne mają takie same nagłówki.
Dużo googlowałem, ale moja znajomość wpf nie była dobra.
Oto mój rodzic klasa węzeł:
public class Parent : PropertyChangedBase
{
public string ParentName { get; set; }
public BindableCollection<Child> Children { get; set; }
}
A dziecko:
public class Child : PropertyChangedBase
{
public string ChildName { get; set; }
}
Moje drzewo XAML widok:
<TreeView Grid.Row="0" Grid.Column="0" ItemsSource="{Binding Nodes}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type projectModels:Parent}" ItemsSource="{Binding Children}">
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<CheckBox Grid.Column="2"></CheckBox>
<TextBlock Grid.Column="1" Text="{Binding ParentName}">
</TextBlock>
</Grid>
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type projectModels:Child}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ChildName}"></TextBlock>
</StackPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>
Próbowałem za pomocą Grid
ale oczywiście tworzyć różne siatki , więc mogę przekazywać informacje o szerokości kolumny.
Próbowałem How to make gridview a child element of a treeview in wpf application, ale używają one ListView
. Nie jest to teraz opcja dla mnie, ponieważ funkcja wyboru treeviewitem jest ściśle powiązana z moim widokiem drzewa i kodem.
Jakieś pomysły, jak to zrobić? Dzięki.
Czy swoją pracę kodu innego niż problem z szerokości kolumn jest inna w każdej pozycji? –
Tak, działa, ale nie w taki sposób, jak tego potrzebuję. Potrzebuję wspólnych nagłówków dla widoku drzewa i jego węzłów. Mogę więc zmienić ich rozmiar, a węzły "z" są takie same. – makambi