我有一些複雜的需求來爲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