【问题标题】:Finding the easiest way to display rows of data in WPF寻找在 WPF 中显示数据行的最简单方法
【发布时间】:2012-08-22 15:00:16
【问题描述】:

我很少使用 WPF,所以我正在寻找最简单最直接的方法来完成这项任务。

基本上我有一个字典,其中键是一些标识符,值是描述。我希望显示描述的网格/列表视图,目的是通过未显示的标识符添加/删除行。

如何快速轻松地完成这项工作?

【问题讨论】:

  • 使用列表视图的 ContextData 属性将列表视图连接到您的数据。
  • 如果是字典,如果它的列不显示,你打算如何设置Keys?
  • @Artiom 键和值已经在应用程序的其他地方设置了。
  • @kmarks2 但您说您希望添加行,但您将无法向字典添加值,因为不会设置新行的键。以防万一,这里是你如何更新字典stackoverflow.com/questions/800130/…
  • @kmarks2 绑定字典有什么用?也许您不仅可以绑定到字典。

标签: c# .net wpf windows


【解决方案1】:

你不能那样做。要添加新行,您需要对其进行设置。但是在隐藏键列的情况下,您将无法完成此操作。 如果您只需要更新外观here

【讨论】:

  • 但链接中没有接受的答案。而且我认为这些答案中的任何一个都不正确。这是 ObservableDictionary stackoverflow.com/questions/1098663/… 上的答案,但我怀疑 OP 会根据目前所显示的努力做出这么多努力。
  • @Blam 假设这个问题也没有答案。不妥协就无法实现。
  • 不和你争论。它可以通过妥协来完成。但它不能快速轻松地完成。 +1 以免你误会我的意思。
【解决方案2】:

示例代码绑定到字典列表。要显示值,请将 Key 替换为 Value。字典不是可观察的集合,因此 UI 不会动态选择插入和删除。

<ListView ItemsSource="{Binding Path=GabeLib.DLFTSwordReverse, Mode=OneWay}" DisplayMemberPath="Key" 
                                      VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling" ScrollViewer.IsDeferredScrollingEnabled="True"  
                                      ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Visible"/>

如果您设置 Mode=TwoWay,我认为您甚至可以更新 Value。

【讨论】:

  • 据我了解,它会显示密钥,但作者不想要它。以及它将如何允许添加/删除行?
  • 阅读我的回答。 “要显示值,请将 Key 替换为 Value。”正如我在答案中所说,正确的字典不会选择插入和删除。
  • 对不起,我的错。无论如何,他想通过 UI 插入,但不允许通知 datagrid 插入字典
  • @Artiom 我同意。 OP 想要一个简单的字典解决方案,如果需要动态插入和删除,则没有一个简单的仅字典解决方案。
猜你喜欢
  • 2011-04-10
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 2016-10-05
  • 1970-01-01
  • 2014-07-31
  • 2020-06-18
相关资源
最近更新 更多