如何将我的列表框保存到的ObservableCollection <>

如何将我的列表框保存到的ObservableCollection <>

问题描述:

MyDoc.cs如何将我的列表框保存到的ObservableCollection <>

public class MyDoc 
{ 

    public string Private {set;get;} 
    public string Public {set;get;} 
} 

MyFind.cs

public class MyFind 
{ 
public string Find {set;get;} 
public string News {set;get;} 

private ObservableCollection<MyDoc> _list; 
public ObservableCollection<MyDoc> List 
{ 
     get 
     { 
      if (_list == null) 
      { 
        _list = new ObservableCollection<MyDoc>(); 
      } 
      return _list; 
     } 
     set 
     { 
       if (_list != value) 
       { 
        _list = value; 
       } 
     } 
} 
} 

在Page1.xaml.cs

MyFind myfind = new MyFind(); 
myfind.Find = Findtextbox.Text;//string = string 
myfind.News = Newstextbox.Text;//string = string 
myfind.List = ??? 

的ObservableCollection = ListBox1中。 ??? (??? = Items,或ItemsSources,或者其他,...我可以使用Convert吗?)< ------------我没有任何想法!帮我 !

如果您已设置ItemsSource属性为类似,你可以执行以下代码列表:

MyFind myFind = new MyFind(); 

var myDocs = simpleListBox.ItemsSource as List<MyDoc>; 
myDocs.ForEach(d => myFind.List.Add(d)); 

我认为你正在寻找的ItemsSource属性:

MyFind myfind = new MyFind(); 
myfind.Find = Findtextbox.Text; 
myfind.News = Newstextbox.Text; 
myfind.List = new ObservableCollection<MyDoc>(listbox1.ItemsSource.Cast<MyDoc>()); 

这里我正在创建一个MyDoc对象的新ObservableCollection,并且向构造函数传递了一个IEnumerable的MyDoc项目。因为listbox1.ItemsSource属性返回一个无类型的IEnumerable,所以我首先使用LINQ将它转换为正确的类型。

为什么你想这样做只是超越了我!如果您在绑定中使用ObservableCollection并从列表框中添加删除T(项目),则可观察集合将得到更新。内容与此:

public class MyViewModel 
{ 
    public ObservableCollection<MyData> List { get; set; } 
} 

public class MyView : UserControl 
{ 
    public MyView() 
    { 
     DataContext = new MyViewModel(); 
    } 
} 

<ListBox ItemsSource="{Binding List}" />