【发布时间】:2012-12-19 01:13:29
【问题描述】:
我正在使用绑定到 ObservableCollection<T> 的 WPF DataGrid,其中每一行(也称为 T 的实例)包含一个浏览和一个删除按钮,它们作为命令绑定到 T 的方法。
问题是我使用CanUserAddRows=true 进行数据输入,并且无法禁用新行的删除按钮(因为尚未实例化 T 的实例)
有人知道解决方法吗?有没有办法控制新项目行上的对象?代码隐藏或通过绑定在这一点上很好 - 我很绝望!
【问题讨论】:
-
您是否尝试过处理LoadingRow 事件,或者您的情况可能是LoadingRowDetails?
-
感谢您的提示,罗恩。这至少让我开始了。我正在研究如何用我自己的替换新的行占位符模板。它变得非常神秘,我觉得我正在与框架作斗争。使用 DataGrid 真的应该这么难吗?似乎缺少的一块拼图是没有像 WinForms 那样的 DataGrid 设计器。我错过了什么重要的东西吗?
-
这一定不难,也许,如果你能提供更多关于你想要做什么的细节,我可以提供更多帮助。
-
你的意思是这样? stackoverflow.com/questions/13757571/… ;-) 但是,是的,我认为这不应该这么难。
-
(对不起,评论系统把我搞砸了)我对问题的理解已经演变为核心问题,即当 CanUserAddRows=true 时,网格控件会创建一个占位符行,由 NewItemTemplate 表示,显然是为“真实”行定义的模板副本。目前,我专注于如何替换我自己的模板,无论是在加载/卸载时的代码中还是使用 XAML。到目前为止,这两种方法都是死胡同。