【发布时间】:2020-05-21 09:27:12
【问题描述】:
我以编程方式将对象列表绑定到 DataGrid,如下所示:
gridAssetParameters.ItemsSource = asset.Parameters;
Parameters 是一个简单的类,具有三个属性:名称、值、描述和可编辑。将源设置为asset.Parameters时,这些列会自动生成,但是我面临的问题是我无法根据属性Editable将行设为只读。我正在考虑使用以下事件手动将行设为只读,但是无法循环生成的行或将行设置为只读。
private void GridAssetParameters_AutoGeneratedColumns(object sender, EventArgs e)
{
//Somehow loop through rows and enable/disable based on logic
}
我知道 MVVM,但不确定在这种情况下如何使用它。任何建议将不胜感激!
更新
我的问题的答案在这里找到:
【问题讨论】:
-
除非你真的必须这样做,否则最好避免为数据网格自动生成列。或者直接在数据网格中编辑。我通常会做一个只读并在覆盖数据网格的面板中进行编辑。这样就可以在某个地方进行验证,并且很容易确保用户明确提交或放弃编辑。然后,当SelectedItem的IESEditia是假时,您可以禁用“编辑”按钮。 span>