Многоколоночный ListView в WPF - ошибки - PullRequest
0 голосов
/ 26 августа 2009

Я пытаюсь определить многоколонный просмотр списка в xaml (Visual Studio 2008), а затем добавить к нему элементы в c #. Я видел много сообщений на эту тему и пробовал различные методы, но я получаю ошибки.

мой код xaml ниже, VS не помечает никаких ошибок на нем.

<ListView Height="234.522" Name="chartListView" Width="266.337">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Name" Width="70"/>
      <GridViewColumn Header="ID" />
    </GridView>
  </ListView.View>
</ListView>

, чтобы попытаться добавить данные в столбцы, Я создал кнопку и поместил код в нажатие кнопки:

    private void button3_Click(object sender, RoutedEventArgs e)
    {
        chartListView.Items.Add("item1").SubItems.Add("item2");
    }

ошибка, которая отображается на подэлементах:

'int' не содержит определения для 'SubItems', и не найдено никакого метода расширения 'SubItems', принимающего первый аргумент типа 'int' (вам не хватает директивы using или ссылки на сборку?) разви \ VS \ pchart \ pchart \ pchart \ Window1.xaml.cs

Кроме того, я попытался просмотреть некоторые другие записи в элементах управления списком, например

ListView - Вставка элементов

я попробовал код там:

ListViewItem item = new ListViewItem (); item.Text = anInspector.getInspectorName () ToString ();.

и получил почти ту же ошибку на элементе. Текст, как я сделал с подэлементами. есть ли что-то ранее в моем коде или определении проекта, которое мне не хватает?

Спасибо за любую помощь

1 Ответ

3 голосов
/ 26 августа 2009

В WPF нет такой вещи, как "подпункты" ListView (возможно, вы путаете это с Windows Forms ListView). Свойство Items в любом случае возвращает коллекцию object s, а object не имеет свойства SubItems. На самом деле каждый элемент в ListView может иметь несколько свойств, и вы указываете, какой из них вы хотите отобразить, с помощью свойства DisplayMemberBinding:

XAML

<ListView Height="234.522" Name="chartListView" Width="266.337">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="70"/>
      <GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}" />
    </GridView>
  </ListView.View>
</ListView>

C #:

private void button3_Click(object sender, RoutedEventArgs e)
{
    chartListView.Items.Add(new { Name = "test1", ID = "test2" });
}

(это не обязательно должны быть анонимные объекты, конечно же, вы можете использовать именованные классы ...)

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