【问题标题】:C# WPF dynamically create a GUI element for each object in listC# WPF 为列表中的每个对象动态创建一个 GUI 元素
【发布时间】:2014-02-12 14:22:27
【问题描述】:

我有一个对象列表(同一类)。这些对象中的每一个都有几个属性。我想构建一个 GUI,为这些对象中的每一个显示一个“图块”,并在这个“图块”中显示该对象的属性值。下图说明了这个想法。

按下 + 磁贴可以添加新对象(会弹出对话框)。对象图块将换行到下一行,每行允许 X 个图块。

您有什么建议以文明的方式执行此操作,以便能够在创建/删除列表中的对象时自动添加/删除图块?也许有人知道一些例子?

目前我对如何实现这一点非常空白。

【问题讨论】:

  • 将您的项目放入ObservableCollection 并使用DataTemplate 为您的对象创建用户界面。
  • 它们已经在 ObservableCollection 中 :)

标签: c# wpf user-interface tiles


【解决方案1】:

考虑使用某种ItemsControlDataTemplate。我将查看有关如何执行此操作的以下教程:http://wpftutorial.net/DataTemplates.html


正如 Matt Burland 所说,您需要将对象放入 ObservableCollection 中,以便它们“动态地”显示。

【讨论】:

  • 还有一个命令(如果您使用 MVVMLight,则为 RelayCommand)用于您的“+”按钮,以调出“新建”对话框。
【解决方案2】:

1) 使用 ListBox,将 ItemsSource 属性绑定到您的 List。 2)在该列表中插入您喜欢的任何类型的对象。 3) 为每种要显示的对象创建DataTemplate

【讨论】:

    【解决方案3】:

    请参考这篇文章 -

    WPF toolkit for tile listview

    它使用带有环绕面板的 ItemsControl 勾勒出平铺效果。 希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-17
      • 2019-10-26
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多