MVVM 轻型列表视图 selecteditem

MVVM light listview selecteditem

如何在 mvvm light wpf 中从我的列表视图中获取选定项?

我有一个 collection 并创建了一个所选项目 属性 但我无法为所选项目正确绑定。

这是我的视图模型:

        ObservableCollection<DTO.Dossier.Dossier> _dossiers;
    public ObservableCollection<DTO.Dossier.Dossier> Dossiers
    {
        get { return _dossiers; }
        set
        {
            _dossiers = value;
            RaisePropertyChanged("Dossiers");
        }
    }

        private DTO.Dossier.Dossier _selectedDossier;
    public DTO.Dossier.Dossier SelectedDossier
    {
        get { return _selectedDossier; }
        set
        {
            if (_selectedDossier != value)
                _selectedDossier = value;

            RaisePropertyChanged("SelectedDossier");

        }
    }

这是列表视图的 xaml:

                <ListView  ItemsSource="{Binding Dossiers}" Margin="0,5,0,0" Name="LstDossiers" SelectedItem="{Binding SelectedDossier, Mode=OneWay}">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="SelectionChanged">
                        <cmd:EventToCommand Command="{Binding SelectDossierCommand}"
                                CommandParameter="{Binding SelectedDossier,
                                      ElementName=LstDossiers}" />
                    </i:EventTrigger>
                </i:Interaction.Triggers>
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Id"  
        DisplayMemberBinding="{Binding Id}" />
                        <GridViewColumn Header="Omschrijving" 
        DisplayMemberBinding="{Binding Omschrijving}" />
                    </GridView>
                </ListView.View>
            </ListView>

该命令有效,但绑定到 SelectedDossier 无效。

您必须在绑定中使用 TwoWay 模式:

<ListView  ItemsSource="{Binding Dossiers}" Margin="0,5,0,0" Name="LstDossiers" SelectedItem="{Binding SelectedDossier, Mode=TwoWay}">