【发布时间】:2011-12-11 04:17:03
【问题描述】:
我在 Datagrid 中遇到了一个奇怪的问题。我将 WPF 与 DataBinding 一起使用,我有一个 DataGrid,一个页面中有 3 个按钮 - 保存、更新、取消 - 以及很多标签。当用户单击更新按钮时,这些标签将启用这些标签的编辑模式。
在编辑模式下,该用户无法更改该网格的 SelectedIndex(这是我的问题)。 我试图创建一个属性 IsNotEditable,绑定到该 DataGrid 的 IsEnabled="",但如果它被禁用,则当前行未被选中。
我不能使用它,因为当用户单击保存时,我将保存该选定行。 所以...我使用以下代码创建了另一个属性 PlacasSelectedItem 和一个“支持”属性 PlacasSelectedAux:
public ConeSlab PlacasSelectedAux { get; set; }
private ConeSlab placasSelectedItem;
public ConeSlab PlacasSelectedItem
{
get { return placasSelectedItem; }
set
{
if (CurrentEditMode == EditMode.View)
{
placasSelectedItem = value;
PlacasSelectedAux = value;
OnPropertyChanged("PlacasSelectedItem");
if (PlacasSelectedItem != null)
PlacaQuenteIsChecked = StringUtil.ConvertYesNoToBoolean(PlacasSelectedItem.Slab.InfHotSlab);
else
PlacaQuenteIsChecked = false;
ExibeLaminadorDestino();
}
else if (CurrentEditMode != EditMode.View)
{
// if isn't in ViewMode, and if user clicks in another Row, will force previously row to be selected.
placasSelectedItem = PlacasSelectedAux;
OnPropertyChanged("PlacasSelectedItem");
}
}
}
好的,现在奇怪的问题:它执行代码,我看到代码的变化,但 SelectedIndex 没有改变!数据绑定不起作用!
这是我的绑定:
<DataGrid SelectedItem="{Binding Path=PlacasSelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
感谢您的帮助!
【问题讨论】:
-
让我直截了当,您有一个可编辑的数据网格,您选择一行并将其中一个单元格置于编辑模式。现在根据您的说法,问题是不允许用户将选择从该行更改为另一行?我说的对吗?
标签: c# wpf xaml data-binding datagrid