我有一个wpf
数据网格。
在 DataGrid 上,选定的索引绑定到 ViewModel 中的变量。
这是代码:
<DataGrid DataContext="{Binding MyViewModel}" SelectedIndex="{Binding SelectedXIndex,Mode=TwoWay}" ItemsSource="{Binding xList, Mode=TwoWay}" AutoGenerateColumns="False" GridLinesVisibility="Horizontal">
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
在 ViewModel 中,我有一个 X 类(可观察集合)中的项目列表,并且我有选择的索引变量:
private int _selectedXIndex;
public int SelectedXIndex
{
get { return _selectedXIndex; }
set
{
_selectedXIndex = value;
NotifyPropertyChanged("SelectedXIndex");
}
}
当我单击 DataGrid 中的一个项目时,选定的索引发生了变化,并且当我在 ViewModel 的构造函数中对其进行初始化时,DataGrid 中发生了更改,但是当我在某个函数上对其进行初始化时,仅在 ViewModel 中而不在 DataGrid 中更改:
public void MoveDown()
{
SelectedXIndex++;
}
我不明白为什么会这样!
编辑:
我在函数中添加了以下代码行:
xList[SelectedXIndex].Name = "Changest Name For Test";
它有效。
他更改了模型的 Selected Item 行上的名称,但他没有在 DataGird 上显示所选项目就是那个。