2

どうしてそれSelectedItemがnullでSelectedItems、アイテムが選択されているのでしょうか?

選択が変更されたイベントのスクリーンショットは次のとおりです。

ここに画像の説明を入力してください

私のDataGrid:

 <DataGrid SelectionChanged="CustomCmdDg_SelectionChanged" SelectedItem="{Binding CurrentX,Mode=TwoWay}" DataContext="{Binding MyViewModel}" x:Name="CustomCmdDg"  ItemsSource="{Binding xList}" AutoGenerateColumns="False" GridLinesVisibility="Horizontal">

...私のViewModelで:

xList=クラスxのリスト(観察可能なコレクション)

  private x currentX;

    public x CurrentX
    {
        get { return currentX; }
        set
        {
            currentX = null;
            NotifyPropertyChanged("CurrentX");
        }
    }

選択したアイテムがnullになることを意図的に望んでいた

4

1 に答える 1

2

currentitem を null に設定する場合は、最初にコレクションから削除する必要があります。その後、選択したアイテムから削除されます。

Public ObservableCollection<x> xList

public x CurrentX
{
    get { return currentX; }
    set
    {
        xList.Remove(currentX)
        currentX = null;
        NotifyPropertyChanged("CurrentX");
    }
}

観察可能なリストは自動的に更新されます

コレクションを操作できるようにする必要がある場合はSelectedItems、バインディングも提供し、必要なコードを実行する必要があります

于 2013-02-13T09:14:18.300 に答える