2016-12-03 1 views
0

In MasterPage gibt es 2 Rahmen. HomePage ist am ersten Frame ->Kann ein Ereignis SelectedItem zu ViewModel in ListView nicht abfangen?

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

In 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; 

Wenn ich Artikel auf Listview- klicken> nicht lstHome_ItemClick nennen. Warum?

+0

ist die 'ListView' in der' Page'? Versuchen Sie, 'DataContext' in' ListView' zu setzen und zu prüfen, ob das funktioniert. – Multinerd

+0

ListView in der HomePage. Lassen Sie DataContext = "{Binding statusList}", dann ist ListView null –

+0

Setzen Sie 'UpdateSourceTrigger = PropertyChanged' in der' Binding'. – AnjumSKhan

Antwort

1

Setzen Sie binding auf TwoWay. Auf UWP the default ist OneWay.

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