Попытка поместить две группы в один и тот же список - PullRequest
0 голосов
/ 24 августа 2011

У меня есть имя участника из базы данных. Теперь мне нужно отобразить эти элементы в списке. У меня есть еще одна таблица продуктов из базы данных.

В соответствии с требованиями клиента, мне нужно отобразить эти элементы в одном и том же списке.

list box diagram

Можно ли разместить два списка элементов в одном и том же списке, разделенных пробелом? И возможно ли какое-либо действие при нажатии на элемент?

Может ли кто-нибудь помочь с этим?

Если это невозможно с помощью списка, возможно ли в виде списка добавить две группы в один столбец, разделенные пробелами, как показано на рисунке выше?

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Вот очень простой пример ListView с группами:

В этой статье MSDN есть более сложный пример: ListViewGroup Class

Помните, что группы являются толькоподдерживается в определенных операционных системах (XP и выше, я думаю), поэтому вам нужно будет учесть это в своем коде.

listView1.View = View.Details;
listView1.Columns.Add(new ColumnHeader() { Width=-1 });
listView1.HeaderStyle = ColumnHeaderStyle.None;

ListViewGroup membersGroup = new ListViewGroup("Members", HorizontalAlignment.Left);
listView1.Groups.Add(membersGroup);
listView1.Items.Add(new ListViewItem() { Text = "Member 1", Group = membersGroup });
listView1.Items.Add(new ListViewItem() { Text = "Member 2", Group = membersGroup });

ListViewGroup productsGroup = new ListViewGroup("Products", HorizontalAlignment.Left);
listView1.Groups.Add(productsGroup);
listView1.Items.Add(new ListViewItem() { Text = "Product 1", Group = productsGroup });
listView1.Items.Add(new ListViewItem() { Text = "Product 2", Group = productsGroup });

А вот пример использования TreeView:

var members = new[] 
            {
                new { MemberName = "Member 1", MemberId = 1 },
                new { MemberName = "Member 2", MemberId = 2 }
            };
var products = new[] 
            {
                new { ProductName = "Product 1", ProductId = 1 },
                new { ProductName = "Product 2", ProductId = 2 }
            };

TreeNode membersNode = new TreeNode("Members", members.Select(m => new TreeNode(m.MemberName)).ToArray());
TreeNode productsNode = new TreeNode("Products", products.Select(p => new TreeNode(p.ProductName)).ToArray());

treeView1.Nodes.Add(membersNode);
treeView1.Nodes.Add(productsNode);

Надеюсь, что это поможет.

0 голосов
/ 24 августа 2011

Похоже, что это задача для TreeView!

Edit: Или проверить это!

http://www.codeproject.com/KB/list/treelistview.aspx

или

http://www.codeproject.com/KB/tree/TreeWithColumns.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...