コード例 #1
0
        private ListViewItem BuildListViewItem(ListItemContent contentItem)
        {
            ListViewItem listViewItem = null;

            var entry = contentItem.Entry;

            foreach (ColumnHeader column in Columns)
            {
                var propertyInfo = entry.GetType().GetProperty(column.Name);

                if (null == propertyInfo)
                {
                    throw new BadTemplateException($"Property {column.Name} not found in ListItemContent!");
                }

                var value = propertyInfo.GetValue(entry, null);

                string text = DisplayContentHelper.GetText(propertyInfo, value);

                if (null == listViewItem)
                {
                    listViewItem = new ListViewItem(text)
                    {
                        Tag = entry
                    };
                    listViewItem.SubItems[0].Tag = value;
                }
                else
                {
                    var subItem = new ListViewItem.ListViewSubItem {
                        Text = text, Tag = value
                    };
                    listViewItem.SubItems.Add(subItem);
                }
            }

            if (null != listViewItem)
            {
                if (null != contentItem.Group)
                {
                    listViewItem.Group = Groups[contentItem.Group];
                }

                if (null != contentItem.ImageKey)
                {
                    listViewItem.ImageKey = contentItem.ImageKey;
                }
            }

            return(listViewItem);
        }
コード例 #2
0
        public void InsertItem(ListItemContent contentItem)
        {
            if (null == contentItem)
            {
                throw new ArgumentNullException(nameof(contentItem));
            }

            var listViewItem = BuildListViewItem(contentItem);

            BeginUpdate();
            Enabled = false;

            Items.Insert(0, listViewItem);

            Enabled = true;
            EndUpdate();

            EnsureVisible(listViewItem.Index);
        }