我想要在樹視圖中可視化對象的層次結構。我知道有很多教程介紹如何做到這一點。原則上我想我甚至知道該怎麼做,但我被卡住了。我希望有人能指出我的錯誤。樹視圖中的分層結構(C#)
這是 「myObject的」:
private int _id;
public virtual int Id
{
get
{
return this._id;
}
set
{
if(this._id != value)
{
this.OnPropertyChanging("Id");
this._id = value;
this.OnPropertyChanged("Id");
}
}
}
private string _name;
public virtual string name
{
get
{
return this._name;
}
set
{
if(this._name != value)
{
this.OnPropertyChanging("name");
this._name = value;
this.OnPropertyChanged("name");
}
}
}
private int? _parentId;
public virtual int? parentId
{
get
{
return this._parentId;
}
set
{
if(this._parentId != value)
{
this.OnPropertyChanging("parentId");
this._parentId = value;
this.OnPropertyChanged("parentId");
}
}
}
private MyObject _myObject1;
public virtual MyObject MyParentObject
{
get
{
return this._myObject1;
}
set
{
if(this._myObject1 != value)
{
this.OnPropertyChanging("MyParentObject");
this._myObject1 = value;
this.OnPropertyChanged("MyParentObject");
}
}
}
private IList<MyObject> _myObjects = new List<MyObject>();
public virtual IList<MyObject> MyChildObjects
{
get
{
return this._myObjects;
}
}
這裏最重要的是所謂的 「MyChildObjects」 子對象的列表。
的XAML如下所示:現在
<TreeView ItemsSource="{Binding myObjects}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding myObjects/MyChildObjects}">
<TextBlock Text="{Binding name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
我的問題是樹形視圖只顯示所有對象的平面結構。最可能的錯誤是在XAML文件中,但我無法弄清楚。我必須改變樹視圖中的層次結構?
謝謝你的幫助! 致以問候
在這種情況下(其中treeview將包含單一類型的實例)需要'DataType'嗎? – mcwyrm
當您在'Resources'中指定'DataTemplate'時,您必須指定'DataType'或'x:Key' – dkozl