gpt4 book ai didi

c# - ListView 人口(使用 C#)?

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:15 26 4
gpt4 key购买 nike

我想以编程方式填充 WPF ListView 。我认为我接近答案但尚未解决,我使用一种方法来填充 ListView , ListView 在 XAML 中看起来像这样

<ListView Name="listview" HorizontalAlignment="Left" Height="252" Margin="39,110,0,0" VerticalAlignment="Top" Width="340">
<ListView.View>
<GridView x:Name="gridcontrol">
<GridViewColumn/>
</GridView>
</ListView.View>
</ListView>

到目前为止我所做的是:

private void FillListView( String[] texto ) {

GridViewColumn gvc = new GridViewColumn();
gvc.Header = cmbx2.SelectedItem.ToString();
gridcontrol.Columns.Add(gvc);

foreach (String s in texto) {

ListViewItem item = new ListViewItem();
item.Content = s;
listview.Items.Add(item);

}

listview.View = gridcontrol;
}

最佳答案

一个更简单的解决方案不是乱用 ListViewItems,而是填充一个集合并对其进行数据绑定(bind)。诀窍是翻转侧面的项目控件,以便您的字符串集合显示为列而不是行。

XAML:

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">

<ItemsControl ItemsSource="{Binding Path=Results}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Item1}" FontWeight="Bold" />
<ItemsControl ItemsSource="{Binding Path=Item2}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>

</Window>

代码隐藏:

using System;
using System.Collections.ObjectModel;
using System.Windows;

namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

Results = new ObservableCollection<Tuple<string, string[]>>();

FillListView("AAA", new string[] { "A1", "A2", "A3" });
FillListView("BBB", new string[] { "B1", "B2", "B3" });

DataContext = this;
}

public ObservableCollection<Tuple<string, string[]>> Results { get; private set; }

private void FillListView(string header, string[] text)
{
Results.Add(Tuple.Create(header, text));
}
}
}

关于c# - ListView 人口(使用 C#)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13557757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com