2009-08-26 4 views
0

Я пытаюсь определить многоколоночный список в xaml (visual studio 2008), а затем добавить элементы к нему в C#. Я видел много сообщений по этому вопросу и пробовал различные методы, но я получаю ошибки.Multicolumn ListView в WPF - ошибки

мой код 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 или ссылки на сборку?) D: \ devel \ VS \ pchart \ pchart \ pchart \ Window1.xaml.cs

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

ListView - Inserting Items

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

ListViewItem вещь = новый ListViewItem(); item.Text = anInspector.getInspectorName(). ToString();

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

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

ответ

3

Там нет такого понятия, как «подпункты» в 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" }); 
} 

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

+0

эй спасибо, только то, что я искал , – Will

Смежные вопросы