1

3 つの異なる List コレクションがあります。

3 つのグループの 1 つの ListBox にそれらを表示するにはどうすればよいですか?

List<string> pending;
List<string> busy;
List<string> completed;

最終結果は次のようになります: vbcity.com/cfs-file.ashx/__key/…. しかし、私が見つけた唯一の例は、1 つのリストでの作業です。

4

3 に答える 3

3

xaml コードでデータ テンプレートの Listview を使用してリスト ボックスを作成します。

<Grid>
    <ListBox Height="100" HorizontalAlignment="Left" Margin="10,10,0,0" Name="lbxTasks"    VerticalAlignment="Top" Width="120">
        <ListBox.GroupStyle>
            <GroupStyle />
        </ListBox.GroupStyle>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <ListView ItemsSource="{Binding Queue}" BorderThickness="0"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

次に、コード ビハインド用に、リストを作成してバインドします。これはテストする例です:

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

        List<string> pending = new List<string> {"1","2"};
        List<string> busy = new List<string> { "4", "5" };
        List<string> completed = new List<string> { "7", "8" };

        private List<Tasks> MyTasks()
        {
            List<Tasks> tasks = new List<Tasks>();
            tasks.Add(new Tasks {Status = "Pending", Queue = pending});
            tasks.Add(new Tasks {Status = "Busy",Queue = busy});
            tasks.Add(new Tasks {Status = "Completed", Queue = completed});
            return tasks;
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ICollectionView _tasksView = CollectionViewSource.GetDefaultView(MyTasks());
            _tasksView.GroupDescriptions.Add(new PropertyGroupDescription("Status"));
            lbxTasks.ItemsSource = _tasksView;
        }
    }

    public class Tasks
    {
        public List<string> Queue { get; set; }
        public string Status { get; set; }
    }
}

これにより、指定したキュー (またはリスト) ごとにリストボックスが作成され、リストの名前でグループ化されます。

出力:

アプリケーションの出力

ソース: 以下のリンクの例をこの形式に変更しました。 collectionView Source を使用した LISTBOX グループ化

于 2012-06-26T19:56:35.350 に答える
2

ListView を使用して簡単にグループ化できます。

方法: Windows フォーム ListView コントロールで項目をグループ化する

于 2012-06-26T19:23:46.697 に答える
0

それらを個別に追加し、最初のグループが完了したら、null または空の文字列値と「------」を表示値として追加して、ユーザーに分離を示します。

于 2012-06-26T19:24:00.900 に答える