Я видел несколько постов со схожими проблемами и уже пытался следовать им всем. Теперь, наконец, я получаю все данные на экране, но не так, как я хочу. Но давайте начнем ...
У меня есть ViewModel, которая предоставляет такие данные:
/// <summary>
/// Returns a collection of all the ContinentListViewModel objects
/// </summary>
public static IList<Object> Items
{
get
{
IList<object> childNodes = new List<object>();
foreach (ContinentViewModel continent in _instance)
{
childNodes.Add(continent);
foreach (CountryViewModel country in continent.CountrytList)
{
childNodes.Add(country);
foreach (BusinessunitViewModel bu in country.BusinessunitList)
{
childNodes.Add(bu);
}
}
}
return childNodes;
}
}
Это мой xaml-TreeView-код:
<TreeView Name="tvwBuList" ItemsSource="{Binding BusinessunitList.Items}" HorizontalAlignment="Left" VerticalAlignment="Top" MinHeight="230" MinWidth="265" MaxHeight="230" MaxWidth="265">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:ContinentViewModel}" ItemsSource="{Binding}">
<TextBlock Text="{Binding Path=ContinentCode}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:CountryViewModel}" ItemsSource="{Binding}">
<TextBlock Text="{Binding Path=CountryCode}" />
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:BusinessunitViewModel}">
<RadioButton GroupName="BUGroup" Content="{Binding Path=BuCode}" />
</DataTemplate>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<!--Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/-->
<Setter Property="IsExpanded" Value="True"/>
<Setter Property="Foreground" Value="Yellow"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
А вот как выглядит результат:
http://imgh.us/bu_treeview.jpg
Извините, но я не могу загружать фотографии как новый пользователь, так что держитесь со мной ...
То, что я хочу иметь, представляет собой законченную структуру, подобную этой:
+ AP
|--+ AU
O-- 164
|--+ CN
O-- 258
O-- 277
...
Так чего мне здесь не хватает? Помощь оценена, спасибо!