Что не так со следующим кодом, элементы списка не отображаются? - PullRequest
0 голосов
/ 11 февраля 2012

Я хочу отобразить список, содержащий элементы списка, у меня есть следующий шаблон, но он не работает, я также изменил Список l на ObservableList, но результат все тот же.

<Window.Resources>
    <DataTemplate x:Key="dataTemplate">
        <ListBox ItemsSource="{Binding Items}">
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
        </ListBox>
    </DataTemplate>
</Window.Resources>
<Grid>
    <ListBox x:Name="list1"/>

List<String> l = new List<String>();
    public MainWindow()
    {
        InitializeComponent();
        list1.ItemTemplate = (DataTemplate)FindResource("dataTemplate");
        l.Add("Hi");
        l.Add("there");

        list1.Items.Add(l);
    }

Ответы [ 2 ]

4 голосов
/ 11 февраля 2012

List<string> не имеет свойства с именем Items, поэтому ваша привязка недействительна

Чтобы заставить его работать, удалите путь Items в привязке, чтобы он связывался непосредственно со списком

<DataTemplate x:Key="dataTemplate">
    <ListBox ItemsSource="{Binding }">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
    </ListBox>
</DataTemplate>
2 голосов
/ 11 февраля 2012

В вашем Xaml вы связываетесь с коллекцией Observable, которая называется Items, в вашем коде вы просто добавляете в свойство items список.

Вам необходимо создать ObservableCollection в вашем коде позади так называемых Items, а затем добавить в эту коллекцию.

...