1

我一直在使用 WPF 创建检查表单,我需要一个用户可以输入未知数量评论的地方(因此我不使用文本框)。在我的这个应用程序的 WinForms 版本中,我使用了 DataGridView,我可以输入尽可能多的信息。我希望对 DataGrid 或 WPF 中的等效控件执行相同的操作。

WinForms 示例

检查表(WinForms)


我需要能够在 WPF 中做同样的事情,但我似乎无法在 DataGrid 中添加任何行。最重要的是,当我尝试检查CanUserAddRows它时,会立即取消选中它。

无法添加行


所以我查看了Vincent Sigal关于这个问题的博客文章。他提到了一些有趣的事情:

...但要小心 CanUserAddRows 和 CanUserDeleteRows,因为它们看起来有点神奇。它们的值是根据其他属性强制转换的,例如 DataGrid.IsReadOnly、DataGrid.IsEnabled、IEditableCollectionView.CanAddNew 和 IEditableCollectionView.CanRemove。所以这是编辑时要注意的另一件事。如果遇到将 CanUserAddRows 或 CanUserDeleteRows 设置为 true 但自动更改为 false 的情况,请检查是否满足以下条件。

我对此进行了验证,并且我的 DataGrid不是只读的,并且已启用。虽然,我不知道在哪里可以找到IEditableCollectionView.CanAddNewIEditableCollectionView.CanRemove...

我认为我的情况不需要在 DataGrid 上绑定事件,因为用户应该将他的评论直接输入到 DataGrid 中......我想要做的甚至可能吗?也许我应该使用不同的控件?

4

1 回答 1

0

我不得不承认我在第一段之后停止阅读你的问题,所以如果我理解错了,请原谅我......但如果你只是想TextBox在 WPF 中输入多行文本,你可以通过设置来做到这一点上面有几个属性:

<TextBox TextWrapping="Wrap" AcceptsReturn="True" />

对于 a DataGrid,您可以在DataGridTextColumn.ElementStyle和/或WPF DataGridTextColumn 多行输入帖子中很好地显示DataGridTextColumn.EditingElementStyle这些属性。

如果我误解了你,请告诉我。


更新>>>

好的,所以我回来阅读您的其余问题...在此站点上不阅读问题就回答可能是有风险的业务。我也这样做了,因为我看到你也想知道如何使用DataGrid.

我必须首先说...深呼吸... WPF与 WinForms 非常不同...非常不同。在 WPF 中,我们操作的是数据而不是 UI 对象,因此添加新行实际上意味着将新项目添加到集合中。DataGrid您可以在 MSDN 的Class页面上找到完整的工作示例。

有关更多示例,还请查看 WPF Tutorial.NET 上的WPF DataGrid 控件页面。WPF 对新手来说有很多东西需要吸收,而且可能会令人困惑,但是当你进入它时,它是值得的。

于 2013-11-01T16:28:14.257 回答