Как связать список с деревом WPF с помощью Xaml? - PullRequest
1 голос
/ 20 марта 2010

Я не знаю, как связать Список Напитков с WPF TreeView.

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 ) };
        }
    }

Я искал в Интернете, например увидел здесь . Но что это вообще значит: ItemsSource="{x:Static local:TreeTest.BoatList}"

x:? static? local?

Как указать коллекцию в своем коде в xaml?

1 Ответ

4 голосов
/ 20 марта 2010

Как правило, вам нужно обязательно установить DataContext для UserControl или Window, а затем сделать так, чтобы ваши "coldDrinks" были коллекцией, определенной как свойство в вашем классе DataContext.

Если вы сделаете это, то все, что требуется, будет:

<TreeView ItemsSource="{Binding ColdDrinks}" />

Я настоятельно рекомендую прочитать о Модель привязки данных WPF . Полное понимание этого - один из ключей к тому, чтобы сделать WPF действительно приятным.


С другой стороны: учитывая ваши последние вопросы и подход, который вы, похоже, используете, вы можете подумать о том, чтобы уделить немного времени чтению о MVVM и других архитектурных подходах. Даже если вы не используете MVVM, статьи, описывающие его, могут помочь вам «мыслить» в терминологии WPF, что очень поможет.

Я написал целую серию по переходу с Программирование в стиле Windows Forms на WPF . В нем обсуждаются конкретные функции WPF и причины, по которым вам следует изменить способ мышления, но некоторые концепции представляются немного медленнее, чем в большинстве статей, посвященных MVVM. Я подумал, что упомяну это, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...