2010-02-23 4 views
3

Я мог бы казаться глупым здесь, но я хочу сделать что-то очень простое. Во время разработки я хочу добавить столбцы в элемент управления listview и добавить к нему некоторые данные. Мне нужно добавить combobox в каждый столбец списка. То, что я не могу найти, - это указать номер столбца в списке. Любая помощь ценит парней.Multicolumn listview в WPF во время разработки

<ListView IsSynchronizedWithCurrentItem="True" Margin="8,68,304,188" 
     BorderThickness="2,2,2,2"> 
<ListView.View> 
    <GridView> 
    <GridViewColumn Width="150" Header="Column1"/> 
    <GridViewColumn Width="150" Header="Column2"/> 
    </GridView> 
</ListView.View> 
<ListViewItem>        
</ListViewItem>    
</ListView> 

ответ

2

Каждый столбец в ListViewItem визуализируется на основе определения GridView, так что нет никакого реального понятия числа столбцов. То, что вы делаете, это связывать объекты с источником items listview и создает из него listviewitems. Таким образом, есть несколько обручей, чтобы проскочить.

This link имеет пример того, как выполнить привязку данных простого объекта. Преимущество этого заключается в том, что структура привязки, которая у вас есть для времени разработки, может быть повторно использована для времени выполнения, если вы установите источник данных datacontext/itemsource в пустой объект вместо статического в XAML.

Если вы делаете это, чтобы показать примеры или у вас есть только статический источник данных, который вы хотите использовать, я бы рекомендовал использовать XmlDataProvider. Затем вы измените свой ListView таким образом:

 

<ListView IsSynchronizedWithCurrentItem="True" Margin="8,68,304,188" 
     BorderThickness="2,2,2,2"> 
<ListView.View> 
    <GridView> 
    <GridViewColumn Width="150" Header="Column1" DisplayMemberPath="{Binding XPath=/A/B}"/> 
    <GridViewColumn Width="150" Header="Column2" DisplayMemberPath="{Binding XPath=/A/C"/> 
    </GridView> 
</ListView.View> 
<ListViewItem>        
</ListViewItem>    
</ListView> 
 
+0

Я, я думаю, я искал то, что никогда не существовало :). Переплет - это путь. Благодарю. – theraneman