Редактирование элемента списка WPF во время выполнения из c #

1

Я пытаюсь редактировать элемент списка WPF из С# во время выполнения, но я не знаю, как это сделать. В WindowsForms я использовал:

foreach (ListViewItem item in listView1.Items)
{
    if (item.SubItems[2].Text == id)
    {
        if (pingtime != 0)
            item.SubItems[6].Text = pingtime.ToString();
        else item.SubItems[6].Text = "999";
    }
}

но это не работает, потому что в WPF нет Item.SubItems[]. Мне нужно найти элемент, содержащий правильный идентификатор, а затем отредактировать 6-й столбец элемента с новым значением. Как я могу это сделать в WPF?

Теги:
wpf
listview

1 ответ

0
Лучший ответ

Связывание в WPF по-разному от WinForms. Для просмотра списка источником данных будет ObservableCollection. Тип T - ваш собственный тип класса. С помощью кода XAML, используя шаблон данных в ListView, вы можете описать, как свойства для вашего настраиваемого типа класса отображаются для каждого элемента данных.

Если вы хотите обновить значение определенных элементов, вам необходимо изменить коллекцию, ваша коллекция должна реализовать интерфейс INotifyPropertyChanged

Код:

internal class MyViewModel
{
    public ObservableCollection<Employee> Employees= new ObservableCollection<Employee>();

    // Populate Employee
}

public class MyWindow
{
    public MyWindow()
    {
        DataContext = new MyViewModel();
    }
}

XAML:

<ListView ItemsSource={Binding Path=Employee, Mode=OneWay}>
    <ListView.DataTemplate>
        <Label Content={Binding Path=EmployeeName, Mode=OneWay} />
     </ListView.DataTemplate>
</ListView>

Если вы все еще хотите получить доступ, используя код позади, вы можете попробовать это,

for (int i = 0; i < listView1.Items.Count; i++)
{
         if (((yourclass)listView1.Items[i]).id== "6")
         {
                //change it here
         }
}
  • 0
    Благодарю. Работает отлично.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню