无法在ListView上捕获ListI的事件SelectedItem到ViewModel?

时间:2016-12-03 03:19:10

标签: c# wpf uwp

在MasterPage中,有2个Frame。 HomePage位于第一帧 - >

<Page.DataContext>
    <viewmodel:HomeVM/>
</Page.DataContext>
<ListView x:Name="lstHome" SelectedItem="{Binding lstHome_ItemClick}"
          Margin="10" ItemsSource="{Binding statusList}">

在HomeVM中:

/// <summary>
/// ItemClick of ListView
/// </summary>
private Status _lstHome_ItemClick;
public Status lstHome_ItemClick
{
    get
    {
        return _lstHome_ItemClick;
    }
    set
    {
        if(_lstHome_ItemClick==value)
        {
            return;
        }
        _lstHome_ItemClick = value;
        //Excute the below code when the selection of listview has changed
        ItemClick(_lstHome_ItemClick);

        PropertyChanged?.Invoke(this,new PropertyChangedEventArgs("lstHome_ItemClick"));
    }
}

public event PropertyChangedEventHandler PropertyChanged;

点击Listview上的项目&gt;不要打电话给lstHome_ItemClick。为什么呢?

1 个答案:

答案 0 :(得分:1)

binding设为TwoWay。在UWP the defaultOneWay

<ListView x:Name="lstHome" SelectedItem="{Binding lstHome_ItemClick, Mode=TwoWay}" 
Margin="10" ItemsSource="{Binding statusList}" />