我的 DataGrid 的 SelectedItem 绑定到下面的属性。
public OrderItemViewModel SelectedItem
{
get { return _selectedItem; }
set
{
if (_selectedItem != value)
{
_selectedItem = value;
OnPropertyChanged(() => SelectedItem);
if (_selectedItem != null && _isReturnMode)
{
if (_selectedItem.OrderItemModel.ProductDetails.IsConstructed)
{
VisiblePaymentViewModel = new ViewReturnComponentsViewModel(this, value.OrderItemModel.ProductDetails);
}
else
{
VisiblePaymentViewModel = new EditReturnItemViewModel(this, value);
}
SelectedItem = null;
}
}
}
}
DataGrid 的 ItemsSource 绑定到
public ICollectionView VisibleOrderItems { get; set; }
我之所以要在程序中重置 SelectedItem,是因为这是一个触摸屏应用程序,当他们选择项目时,我希望它改变视图,然后当他们回到带有数据网格的视图时我不希望选择项目。
我尝试创建一个单独的函数来清除 SelectedItem,并在单独的 View 完成时调用它,还尝试了各种绑定设置.... UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, IsSynchronizedWithCurrentItem
无法理解为什么这不起作用。
DataGrid 将该行显示为突出显示,但是当我单击该行时,它会设置 _selectedItem ( _selectedItem != value
)