16

MVVM を使用して WPF でリストボックス変更イベントを実行しようとしています。このselectionchangedイベントのやり方を教えてください。

4

3 に答える 3

35

を使用してそれを行うことができます

  1. System.Windows.Interactivityプロジェクトに参照を追加する
  2. XAML で追加xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

それで

<ListBox>
  <i:Interaction.Triggers>
    <i:EventTrigger EventName="SelectionChanged">
      <i:InvokeCommandAction Command="{Binding YourCommand}"
                             CommandParameter="{Binding YourCommandParameter}" />
    </i:EventTrigger>
  </i:Interaction.Triggers>
</ListBox>
于 2012-09-06T10:03:37.623 に答える
34

SelectedItemリストボックスのプロパティを ViewModel のプロパティにバインドします。

<ListBox SelectedItem="{Binding SelectedItem}" ...>
    ....
</ListBox>

プロパティには、ListBox から選択された項目が常に存在します。選択が変更されたときに本当に何かをする必要がある場合は、そのプロパティのセッターでそれを行うことができます:

public YourItem SelectedItem
{
    get { return _selectedItem; }
    set
    {
        if(value == _selectedItem)
            return;

        _selectedItem = value;

        NotifyOfPropertyChange("SelectedItem");

        // selection changed - do something special
    }
}
于 2012-09-06T10:00:54.293 に答える