我有一些复杂的需求来为Silverlight中的TreeView创建一个DataTemplate。这是使用MVVM设计模式。 这里就是我想:如何在TreeView Silverlight 4.0中创建DataTemplate
包1 Child1 CHILD2 包2 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头部值。 每个子项目都是内容为ChildName的子框,复选框的Enabled属性绑定到Child的IsEnabled。
我试过下面的代码,但它根本没有显示任何树视图。
<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>
注意:我将值填充到视图模型构造函数中的PackagesCollection。这会是一个问题吗? 让我知道我是否缺少任何东西,并建议我解决这个问题的最佳途径。
在此先感谢。
我们,你能得到你的树? – jimmyjambles