Bind Treeview In WPF
TreeView Xmal
<TreeView x:Name="TvWorkItem" Grid.Column="0" Grid.Row="2" Background="Black"
ItemsSource="{Binding MenuDataSource}"
SelectedItemChanged="TreeView_OnSelectedItemChanged">
<TreeView.ItemTemplate >
<HierarchicalDataTemplate ItemsSource="{Binding ChildItems}">
<TextBlock Text="{Binding Name}" Background="Black" >
<TextBlock.Style >
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding HasOutStandingTask}" Value="true">
<Setter
Property="Foreground"
Value="DarkOrange" />
<Setter Property="FontSize" Value="16"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding HasOutStandingTask}" Value="false">
<Setter
Property="Foreground"
Value="Aqua" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
ViewModel
private ObservableCollection<MenuItem> _menuDataSource;
public ObservableCollection<MenuItem> MenuDataSource
{
get
{
if (_menuDataSource == null)
_menuDataSource = MenuOperation.LoadMenu();
return _menuDataSource;
}
set
{
_menuDataSource = value;
RaisePropertyChanged(() => MenuDataSource);
}
}
Entity
public class MenuItem
{
public Guid Id { get; set; }
public string Name { get; set; }
public string OriName { get; set; }
public bool HasOutStandingTask { get; set; }
public ObservableCollection<MenuItem> ChildItems { get; set; }
public bool IsWorkItemType { get; set; }
public WorkItemType WorkType { get; set; }
public bool IsWorkItem { get; set; }
}