C# 更新实例wpf副本的属性
我有两个列表框。一个源列表框绑定到C# 更新实例wpf副本的属性,c#,wpf,mvvm,drag-and-drop,listbox,C#,Wpf,Mvvm,Drag And Drop,Listbox,我有两个列表框。一个源列表框绑定到observedcollection MyNetwork,另一个列表框是我的目标列表框,绑定到observedcollection Crew。每次将项目放入目标列表框时,我都会创建sourceItem的新实例 现在我想更新新iStates的属性,但它似乎不起作用。当我更改一个sourceItems(FirstName)属性时,是否有方法使sourceItems的副本更新。我是WPF和MVVM的新手,我想知道这是否可能,或者是否有解决办法来实现这一点 以下是我迄今
observedcollection MyNetwork
,另一个列表框是我的目标列表框,绑定到observedcollection Crew
。每次将项目放入目标列表框时,我都会创建sourceItem
的新实例
现在我想更新新iStates的属性,但它似乎不起作用。当我更改一个sourceItems(FirstName)
属性时,是否有方法使sourceItems的副本更新。我是WPF和MVVM的新手,我想知道这是否可能,或者是否有解决办法来实现这一点
以下是我迄今为止的情况:
在视图模型中
源列表框:
private ObservableCollection<Person> _myNetwork = new ObservableCollection<Person>();
public ObservableCollection<Person> MyNetwork
{
get { return _myNetwork; }
set { _myNetwork = value; RaisePropertyChanged(); }
}
我建议使用一个库来包装PropertyChanged事件,以便在需要调用属性时更容易更新属性 曾经的例子是。您可以在代码中使用
NotifyOfPropertyChange(()=>FirstName)
来更新FirstName属性,但您需要这样做(它不必只在setter中使用)
这里有一篇关于如何使用的好文章
例如:
using Caliburn.Micro;
namespace CaliburnMicroExample
{
public class ShellViewModel : PropertyChangedBase
{
private string _message;
public string Message
{
get { return _message; }
set
{
_message = value;
NotifyOfPropertyChange(() => Message);
}
}
public ShellViewModel()
{
Message = "Hello World";
}
}
}
public Person(string FirstName, string LastName, string Profession)
{
_firstName = FirstName;
_lastName = LastName;
_profession = Profession;
}
private string _firstName;
public string FirstName
{
get { return this._firstName; }
set { this._firstName = value; RaisePropertyChanged("FirstName"); }
}
private string _lastName;
public string LastName
{
get { return _lastName; }
set { _lastName = value; RaisePropertyChanged("LastName"); }
}
private string _profession;
public string Profession
{
get { return _profession; }
set { _profession = value; RaisePropertyChanged("Profession"); }
}
using Caliburn.Micro;
namespace CaliburnMicroExample
{
public class ShellViewModel : PropertyChangedBase
{
private string _message;
public string Message
{
get { return _message; }
set
{
_message = value;
NotifyOfPropertyChange(() => Message);
}
}
public ShellViewModel()
{
Message = "Hello World";
}
}
}