У меня есть сложное требование для создания DataTemplate для TreeView в Silverlight. Это использует шаблон проектирования MVVM. вот что я хочу:Как создать DataTemplate в TreeView Silverlight 4.0
Package1 Child1 Child2 Package2 Child3 Child4
Код:
Class Package
{
string _Name;
ObservableCollection<Child> _Childs;
public ObservableCollection<Child> Childs{get{return _Childs; } set{_Childs=value;}}
public string PackageName{get{return _Name; } set{_Name=value;}}
}
class Child
{
string ChildName;
public bool IsEnabled{get;set;}
public string Id{get; set;}
}
Использование контракта выше данных я должен создать древовидное: Имя пакета значение TreeItem. Каждый дочерний элемент является дочерним полем с содержимым - дочернее имя, а свойство Enabled этого флажка привязано к IsEnabled of Child.
Я пробовал следующий код, но он не показывает никакого древовидного вида вообще.
<sdk:TreeView x:Name="SelectedPackagesTV" ItemsSource="{Binding Packages, Mode=TwoWay}"
ItemTemplate="{StaticResource PackageTemplate}">
<sdk:TreeView.Resources>
<DataTemplate x:Key="FormsTemplate" >
<CheckBox Content="{Binding Id, Mode=TwoWay}" IsEnabled="{Binding IsEnabled}" >
</CheckBox>
</DataTemplate>
<sdk:HierarchicalDataTemplate x:Key="PackageTemplate" ItemsSource="{Binding Childs, Mode=TwoWay}" ItemTemplate="{StaticResource FormsTemplate}">
<TextBlock Text="{Binding Name, Mode=TwoWay}" />
</sdk:HierarchicalDataTemplate>
</sdk:TreeView.Resources>
</sdk:TreeView>
ПРИМЕЧАНИЕ. Я заполняю значения в PackageagesCollection в конструкторе модели представления. Будет ли это проблемой? Сообщите мне, если у меня что-то отсутствует, а также предложите мне лучший способ решить эту проблему.
Заранее спасибо.
Мы вы можете получить ваше дерево? – jimmyjambles