私の 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 をクリアするだけの別の関数を作成し、別のビューが終了したときにそれを呼び出すことを試みました。また、さまざまなバインディング設定を試しました.... UpdateSourceTrigger=PropertyChanged、Mode=TwoWay、IsSynchronizedWithCurrentItem
なぜこれがうまくいかないのか、頭を悩ませることはできません。
DataGrid は行をハイライト表示しますが、その行をクリックすると _selectedItem ( _selectedItem != value
)が設定されます