Можно создать дубликат:
WPF ListView - how to add items programmatically?Добавить программно ListViewItem в ListView в WPF
Как это может быть сделано в C#?
Можно создать дубликат:
WPF ListView - how to add items programmatically?Добавить программно ListViewItem в ListView в WPF
Как это может быть сделано в C#?
Если вы используете ListView, поскольку он предназначен, он будет привязан к базовому списку какого-либо объекта, и этот класс должен реализовать INotifyChanged. В WPF вы напрямую не добавляете/не удаляете элементы из ListView, вы имеете дело со структурой связанных списков и уведомляет пользовательский интерфейс об изменении, который затем умело перерисовывает себя с новыми элементами.
Это, как вы бы добавить ListViewItem
, созданный в коде вашей ListView
:
myListView.Items.Add(new ListViewItem { Content = "This is an item added programmatically." });
Однако, я согласен с MrTelly, что это не должно быть необходимым, вы должны быть настройки ListView.ItemsSource
некоторого набора а не манипулировать ListView.Items
напрямую.
Если вы дадите нам более подробную информацию о том, что вы хотите выполнить, возможно, мы сможем помочь вам сделать это способом WPF, который не всегда является простым способом, но в конечном счете это намного проще, чем .
Динамические столбцы можно добавлять в ListView с помощью Attached Properties. Проверьте эту статью на CodeProject это точно объясняет, что ...
я задал тот же вопрос HERE (и ответил сам - у меня была проблема в моем коде). Надеюсь, это поможет.
Добавление его непосредственно в ListView в вашем приложении не обязательно означает «WPF-путь». Рассмотрим это:
public class BindableListViewModel
{
public IList<TypeOfObjectToDisplay> AllObjectsToDisplay;
public ICommand AddNewItemToList;
public BindableListViewModel()
{
AllObjectsToDisplay = new ObservableList<TypeOfObjectToDisplay>();
AddNewItemToList = new RelayCommand(AddNewItem(), CanAddNewItem());
}
public bool CanAddNewItem()
{
//logic that determines IF you are allowed to add
//For now, i'll just say that we can alway add.
return true;
}
public void AddNewItem()
{
AllObjectsToDisplay.Add(new TypeOfObjectToDisplay());
}
}
Затем в XAML все, что нам нужно сделать, это связать ItemsSource нашего ListView к нашему списку AllObjectsToDisplay. Это позволяет нам отделить зависимость добавления объектов непосредственно к нашему ListView; мы можем использовать силу WPF для привязки данных до . Удалите прямую зависимость о том, как мы добавляем объекты бизнеса в наш контейнер пользовательского интерфейса, которые мы показываем в них - очень полезная практика!
(извините, не могу комментировать пока)
Как MrTelly находится на ...
свяжи ListView к ObservableCollection
ObservableCollection<MyClassItem> lvList = new ObservableCollection<MyClassItem>();
myListview.ItemSource = lvList;
// Add an item
lvList.Add(new MyClassItem("firstname", "lastname"));
Таким образом, он будет автоматически обновлять Пользовательский интерфейс, когда в коллекцию вносятся изменения.