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

发布于 2024-12-11 17:37:08 字数 1015 浏览 0 评论 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 吗?)<------------ 我没有任何想法!帮我 !

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

In Page1.xaml.cs

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

ObservableCollection = listbox1.??? (??? = Items,or ItemsSources,or something,...May I use Convert ?)<------------ I don't have any ideas ! Help me !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

过期以后 2024-12-18 17:37:08

如果您已将 ItemsSource 属性设置为类似 List 的属性,则可以执行以下代码:

MyFind myFind = new MyFind();

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

If you've set the ItemsSource property to something like a List you could execute the following code:

MyFind myFind = new MyFind();

var myDocs = simpleListBox.ItemsSource as List<MyDoc>;
myDocs.ForEach(d => myFind.List.Add(d));
鲸落 2024-12-18 17:37:08

我认为您正在寻找 ItemsSource property:

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 将其转换为正确的类型。

I think you're looking for the ItemsSource property:

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

Here I'm creating a new ObservableCollection of MyDoc objects, and to the constructor I'm passing an IEnumerable of MyDoc items. Because the listbox1.ItemsSource property returns an untyped IEnumerable, I'm first casting it using LINQ to the correct type.

浮生面具三千个 2024-12-18 17:37:08

你为什么要这样做我实在无法理解!如果您将 ObservableCollection 与 Binding 一起使用,并从列表框中添加删除 T(项目),则可观察集合将得到更新。与此相关的东西:

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

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

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

Why do you want to do this is just beyond me! If you use an ObservableCollection with Binding and add remove T (items) from your listbox, the observable collection will get updated. Something inline with this:

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

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

<ListBox ItemsSource="{Binding List}" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文