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,或者什么,......我可以使用转换吗?)&lt; ------------我没有任何想法!救救我!
答案 0 :(得分:0)
如果您已将ItemsSource属性设置为类似List的内容,则可以执行以下代码:
MyFind myFind = new MyFind();
var myDocs = simpleListBox.ItemsSource as List<MyDoc>;
myDocs.ForEach(d => myFind.List.Add(d));
答案 1 :(得分: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将它强制转换为正确的类型。
答案 2 :(得分: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}" />