WPF ListView 中的多维绑定

发布于 2024-12-06 15:13:57 字数 351 浏览 0 评论 0原文

我有以下数据结构:

class XItem 
{
public string Name {get;set;}
public int Position { get;set;}
...
}

class MyItemList
{
public List<XItem> Items{get;set;}
...
}

现在我想将 MyItemLists 列表绑定到 WPF-ListView。我希望每个 XItem 都有一个 ListViewItem。但我无法直接绑定它,因为 Items-Property 是 XItems 列表。

是否可以在不重组我的数据源的情况下实现这一点?

谢谢

I have the following Data-Structure:

class XItem 
{
public string Name {get;set;}
public int Position { get;set;}
...
}

class MyItemList
{
public List<XItem> Items{get;set;}
...
}

Now i want to bind a List of MyItemLists to a WPF-ListView. I want to have a ListViewItem for every XItem. But i cannot bind it directly, because the Items-Property is a List of XItems.

Is it possible to realize this without restructuring my Datasource?

thanks

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

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

发布评论

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

评论(1

花桑 2024-12-13 15:13:57
myList.DataSource = myListOfMyItemList.SelectMany(i=>i.Items);

您可以使用 Linq 的 SelectMany 来展平列表,然后再将其分配给列表的数据源属性。如果您使用 MVVM,那么您可以使用上面提到的代码让 ViewModel 的属性返回列表的扁平版本。

myList.DataSource = myListOfMyItemList.SelectMany(i=>i.Items);

You can use SelectMany of Linq to flatten your list before assigning it to datasource property of list. If you're using MVVM then you can have a property of your ViewModel return a flatten version of the List by using code as mentioned above.

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