0

MyDoc.cs

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 を使用してもよろしいですか?)<------------ アイデアがありません! 助けて !

4

3 に答える 3

0

ItemsSource プロパティを List のようなものに設定した場合は、次のコードを実行できます。

MyFind myFind = new MyFind();

var myDocs = simpleListBox.ItemsSource as List<MyDoc>;
myDocs.ForEach(d => myFind.List.Add(d));
于 2011-10-22T08:48:14.830 に答える
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 を作成し、コンストラクターに MyDoc アイテムの IEnumerable を渡しています。listbox1.ItemsSource プロパティは型指定されていない IEnumerable を返すため、最初に LINQ を使用して正しい型にキャストします。

于 2011-10-22T08:52:50.497 に答える
0

なぜこれをしたいのですか?Binding で ObservableCollection を使用し、リストボックスから削除 T (項目) を追加すると、監視可能なコレクションが更新されます。これとインラインの何か:

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

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

<ListBox ItemsSource="{Binding List}" />
于 2011-10-22T08:58:29.173 に答える