我正在尝试使用MVVM模式处理数据网格。问题是,无论何时我将绑定到SelectedItem的VM属性更改为null,View都不会“取消”当前选定的项目。这是我在XAML绑定:WPF Datagrid selecteditem = MVVM中的null
<DataGrid Grid.Column="0" Grid.Row="0"
ItemsSource="{Binding Path=Users}"
AutoGenerateColumns="False"
CanUserAddRows="False"
IsReadOnly="True"
SelectedItem="{Binding Path=SelectedUser, Mode=TwoWay}">
的的SelectedItem在SelectedUser财产我总是有选择的对象结合从视图作品到VM这样。问题是在VM中,我正在做一些有时将SelectedUser属性更改为null的东西,因此我期望datagrid也可以取消选择该行。相反,它仍然是选中的,如果我尝试点击同一行,则属性不会更新。如果我点击任何其他行,则属性会按预期更改。
有没有办法让数据网格取消选择,如果它的绑定属性设置为空?另外,我正在寻找MVVM解决方案,因为我不想编写代码。我可以通过编写代码解决这个问题的背后,所以不要浪费时间,提供这样的解决方案:)
l.e:这是我在虚拟机属性:提前
public RPLUser SelectedUser
{
get
{
return selectedUser;
}
set
{
selectedUser = value;
OnPropertyChanged("SelectedUser");
}
}
谢谢!
当您在viewmodel中设置属性时,是否调用OnPropertyChanged事件让视图知道它需要更新? – Purplegoldfish
是的,我正在编辑描述以提及此。好问题,谢谢! –
你可以发布你正在使用的代码来设置虚拟机中的属性以及属性本身的代码吗? – Purplegoldfish