Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新实例wpf副本的属性_C#_Wpf_Mvvm_Drag And Drop_Listbox - Fatal编程技术网

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";
        }
    }
}