在列表框行中添加多个项目

本文关键字:项目 添加 列表 | 更新日期: 2023-09-27 18:21:42

到目前为止,我一直在使用listview,没有遇到任何问题。我已经能够传递多个列,并用图像、文本等填充它们。我决定用列表框做同样的事情,但那里的事情变得复杂了。在列表视图中,我执行以下操作:

<DataTemplate x:Key="ImageTemplate" >
    <Image x:Name="FavoriteImageList"  Tag="{Binding tagger}" Width="12" Height="12" Source="{Binding ImageSource}" MouseLeftButtonDown="FavoriteImageList_MouseLeftButtonDown"/>
</DataTemplate>
<ListView x:Name="Citys">
    <ListView.View>
        <GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">
            <GridViewColumn Width="90" Header="Image" CellTemplate="{StaticResource ImageTemplate}"/>
            <GridViewColumn Width="178" Header="Name" DisplayMemberBinding="{Binding Name}" />
            <GridViewColumn Width="178" Header="City" DisplayMemberBinding="{Binding City}"/>
            <GridViewColumn Width="140" Header="Author" DisplayMemberBinding="{Binding Author}"/>
        </GridView>
    </ListView.View>
</ListView>

我填写这样的栏:

foreach(var fav in Favorites)
{
    Citys = new List<ACity>() 
    {
        new ACity() {tagger = Name ,ImageSource = ImageSource ,Name= Name, Author= Author, City = City}
    };
    ListBox.Items.Add(Citys);
}

如果我在列表框中执行此操作,它将填充(Collection)。有没有一种方法可以在列表框中做到这一点,在列表框行中传递图像按钮字符串?

在列表框行中添加多个项目

请参阅MSDN ItemsControl.ItemTemplate 中的示例

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel>
         <TextBlock Text="{Binding Path=TaskName}" />
         <TextBlock Text="{Binding Path=Description}"/>
         <TextBlock Text="{Binding Path=Priority}"/>
       </StackPanel>
     </DataTemplate>
   </ListBox.ItemTemplate>
 </ListBox>

它应该非常直接地与你的例子相匹配。