2011-10-22 47 views
0

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嗎?)< ------------我沒有任何想法!幫我 !

回答

0

如果您已設置ItemsSource屬性爲類似,你可以執行以下代碼列表:

MyFind myFind = new MyFind(); 

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

我認爲你正在尋找的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將它轉換爲正確的類型。

0

爲什麼你想這樣做只是超越了我!如果您在綁定中使用ObservableCollection並從列表框中添加刪除T(項目),則可觀察集合將得到更新。內容與此:

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

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

<ListBox ItemsSource="{Binding List}" /> 
相關問題