struct Drink
{
    public string Name { get; private set; }
    public int Popularity { get; private set; }

    public Drink ( string name, int popularity )
        : this ( )
    {
        this.Name = name;
        this.Popularity = popularity;
    }
}

List<Drink> coldDrinks = new List<Drink> ( ){
    new Drink ( "Water", 1 ),
    new Drink ( "Fanta", 2 ),
    new Drink ( "Sprite", 3 ),
    new Drink ( "Coke", 4 ),
    new Drink ( "Milk", 5 ) };
        }
    }


这样我就可以看到Treeview项目名称的Name属性。

最佳答案

Reed已经介绍了“构建自己的XAML”方法,但是仅为了说明FrameworkElementFactory方法,它看起来像这样。

首先,创建FEF:

var fef = new FrameworkElementFactory(typeof(TextBlock));
fef.SetBinding(TextBlock.TextProperty, new Binding("Name"));


然后创建一个VisualTemplate设置为该工厂的DataTemplate:

DataTemplate dt = new DataTemplate { VisualTree = fef };


尽管正如Reed所指出的那样,FrameworkElementFactory方法已被正式弃用,但它仍被合理地广泛使用,我想是因为构建XAML字符串感觉太麻烦了。 (尽管如果您使用的是非平凡的模板,那么FEF方法很快就会变得异常复杂!!)

09-27 14:38