要将项目添加到列表中TextBox
,请在您的中创建一个字符串类型的属性,ViewModel
并在属性更改时通知。您还必须为编辑创建一个类似的属性,并且还必须从ListView
string contactName;
public string ContactName
{
get
{
return contactName;
}
set
{
contactName = value;
OnPropertyChanged("ContactName");
}
}
private string editedName;
public string EditedName
{
get { return editedName; }
set
{
editedName = value;
OnPropertyChanged("EditedName");
}
}
private int selectedIndex;
public int SelectedIndex
{
get { return selectedIndex; }
set
{
selectedIndex = value;
OnPropertyChanged("SelectedIndex");
}
}
将TextBoxe
s 和添加ListBox
到您的视图并应用绑定。这是棘手的部分。因为,当您从 中选择一个项目时ListView
,所选项目的索引必须存储在 SelectedIndex 属性中,所选联系人姓名应绑定到TextBox
用于编辑值的联系人。
<ListBox Name="contactNames" SelectedIndex="{Binding SelectedIndex}" ItemsSource="{Binding ContactNames}" SelectedItem="{Binding EditedName}" />
<TextBox Name="addNameTextBox" Text="{Binding ContactName}" />
<TextBox Name="editNameTextBox" Text="{Binding EditedName}" />
在处理按钮单击的 Command 方法中,添加逻辑以根据属性集添加或编辑项目。
if (EditedName != null && EditedName != string.Empty)
{
ContactNames[SelectedIndex] = EditedName;
EditedName = string.Empty;
}
else if (ContactName!=null && ContactName != string.Empty)
{
ContactNames.Add(ContactName);
ContactName = string.Empty;
}
不要忘记将您的列表创建为ObservableCollection
. 否则,LisView
将不会通知对列表所做的更改。
希望这可以帮助。