2016-12-03 37 views
0

在MasterPage中,有2個框架。 主頁是在第一幀 - >無法在ListView上捕獲事件SelectedItem以ViewModel?

<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-項目>不叫lstHome_ItemClick。爲什麼?

+0

是'PageView'中的ListView嗎?嘗試在'ListView'上設置'DataContext',看看它是否在主頁中工作 – Multinerd

+0

ListView。讓DataContext =「{Binding statusList}」,然後ListView爲null –

+0

在'Binding'中設置'UpdateSourceTrigger = PropertyChanged'。 – AnjumSKhan

回答

1

binding設置爲TwoWay。在UWP the default上是OneWay

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