在运行时从c#编辑WPF ListView项
本文关键字:WPF ListView 编辑 运行时 | 更新日期: 2023-09-27 18:04:48
我试图在运行时从c#编辑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[]
。我需要做的是找到包含正确id的项目,然后用新值编辑项目的第6列。我如何在WPF中做到这一点?
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
}
}