Как заполнить просмотр списка в WPF C # - PullRequest
1 голос
/ 12 июля 2011

Я пытаюсь заполнить вид списка при загрузке окна, но ничего не выходит.

Это мой XAML

<ListView Height="142" Name="listView1" Width="371">
            <ListView.View>
                <GridView>
                    <GridViewColumn Width="60" Header="ID"/>
                    <GridViewColumn Width="300" Header="User Name" />
                </GridView>
            </ListView.View>
        </ListView>
    </GroupBox>

это мой код c #:

  private void Window_Loaded(object sender, RoutedEventArgs e)
    {

        ArrayList _ID = new ArrayList();
        ArrayList _UserList = new ArrayList();

        using (DataClasses1DataContext dc = new DataClasses1DataContext())
        {
            var Users = (from u in dc.users select u.username).ToList();

            for (int i = 0; i < Users.Count(); i++)
            {
                _UserList.Add(Users[i]).ToString();
            }


            using (DataClasses1DataContext dcc = new DataClasses1DataContext())
            {
                var ID = (from u in dcc.users select u.id).ToList();

                for (int i = 0; i < ID.Count(); i++)
                {
                    _ID.Add(ID[i]).ToString();
                }

            }
        }

Пожалуйста, помогите

Ответы [ 3 ]

3 голосов
/ 12 июля 2011

GridViewColumns работают через DisplayMemberBinding или CellTemlate. Вы не указали ни того, ни другого.

Кроме того, я не вижу, чтобы вы вообще ссылались на ListView в своем коде, по крайней мере вам нужно будет добавлять элементы через ListView.Items.Add или путем установки ListView.ItemsSource.

2 голосов
/ 12 июля 2011

Сначала сделайте объект, я вижу, у вас есть 2 разных списка.Просто используйте один объект, сохраняя оба данных.Далее, как сказал HB, вам нужно указать, что показывает каждый столбец.Простой способ - использовать DisplayMemberPath, более сложное, но и более гибкое решение - использовать специализированный CellTemplate.

если ваш объект данных выглядит следующим образом

public class MyObject
{
   public int Id{get;set;}
   public string Name {get;set;}
}

ваш ListView, содержащий список этих элементов в xaml, будет выглядеть следующим образом.

<ListView.View>
    <GridView>
        <GridViewColumn Width="60" Header="ID" DisplayMemberBinding="{Binding Id}"/>
        <GridViewColumn Width="300" Header="User Name" DisplayMemberBinding="{Binding Name}" />
    </GridView>
</ListView.View>

Надеюсь, что это поможет.

1 голос
/ 12 июля 2011

Хорошо ListView1 не привязан ни к какому источнику данных.

также сгенерированные массивы никогда не назначаются представлению списка ....

Посмотрите на свойство ItemSource

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