簡體   English   中英

在TreeView中添加自定義類元素

[英]Adding custom class elements into TreeView

我將嘗試解釋我一直在嘗試做的事情,但又想不出盡可能簡單的方法(例如,使用汽車)。 假設我的MainWindw.xaml.cs代碼中有一個自定義類(也可以包含三個以上的元素):

    public class Car {
        public string car_name { get; set; }
        public string car_brand { get; set; }
        public int car_year { get; set; }
    }

現在,我想將Car實施到TreeView中,該外觀應如下所示:

    ->car_name
       ->car_brand
       ->car_year

因此,當我單擊car_name時,它將展開,並且car_brand和car_year是其子元素。 我還希望能夠添加多個,例如:

    ->car_name
       ->car_brand
       ->car_year
    ->car_name
       ->car_brand
       ->car_year
    ->car_name
       ->car_brand
       ->car_year

我不知道的是使用C#將自定義類實現到TreeView的正確方法是什么。 我嘗試了“綁定”的許多變體。 互聯網上有很多示例,但是我還沒有遇到任何可以真正簡化的示例,或者我已經看了太久了,有點發瘋了,無法看穿它。

    <TreeView Name="myTree">
        <TreeViewItem Header="{Binding car_name}">
            <TreeViewItem Header="{Binding car_brand}"/>
            <TreeViewItem Header="{Binding car_year}"/>
        </TreeViewItem>
    </TreeView>

我想像的C#在要添加新車時應該像這樣:

    Car mycar1 = new Car({car_name="my car name", car_brand="my car brand", car_year=1999});
    myTree.Add(mycar1);

如果有人可以簡單地向我解釋這一點,我將非常樂意。 我剛剛開始使用VisualStudio學習C#和XAML,這確實困擾了我。

無需綁定即可簡單地通過這種方式完成:

           Car mycar1 = new Car("my car name", "my car brand", 1999);
           TreeViewItem node = new TreeViewItem() { Header = mycar1.car_name};
           node.Items.Add(new TreeViewItem() { Header = mycar1.car_brand });
           node.Items.Add(new TreeViewItem() { Header = mycar1.car_year });
           myTree.Items.Add(node);

每個節點都是汽車名稱,在節點上添加品牌和年份,然后像上面所做的那樣將整個節點添加到樹中。 請注意,這是我使用的Car類:

public class Car
{
    public string car_name { get; set; }
    public string car_brand { get; set; }
    public int car_year { get; set; }
    public Car(string name, string brand, int year)
    {
        car_brand = brand;
        car_name = name;
        car_year = year;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM