我试图在运行时从c#编辑WPF listview项目,但我不知道该怎么做。在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中做到这一点?
答案 0 :(得分: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
}
}