2016-04-14 72 views
0

我使用WPF中的列表視圖這樣的:ListView中如何自動更新所選行保存sucess在WPF MVVM後

<ListView x:Name="lv" ItemsSource="{Binding Path=xyz}" SelectedItem="{Binding SelectedRow}" > 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Width="50" DisplayMemberBinding="{Binding }" /> 
      <GridViewColumn Width="140" DisplayMemberBinding="{Binding }" /> 
      <GridViewColumn Width="140" DisplayMemberBinding="{Binding }" /> 
      <GridViewColumn Width="120" DisplayMemberBinding="{Binding }" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

在保存在選定的行應該跳到形式的點擊next row.Like currentselectedrow + 1。

如何在WPF MVVM中實現此目的?

回答

3

起初,我會建議使用SelectedIndex而不是SelectedItem。

<ListView x:Name="lv" ItemsSource="{Binding Path=xyz}" SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}" /> 

然後在您的保存方法在你的視圖模型,你可以簡單地通過1增加的SelectedIndex(注意檢查該指數是不是最後一個)

private void Save() 
{ 
    // Your Save Logic... 

    if (SelectedIndex + 1 < xyz.Count) 
     SelectedIndex++; 
} 

,如果你要保留的SelectedItem ,比你可以做類似的事情更像

private void Save() 
{ 
    //Your Save Logic... 

    var index = xyz.IndexOf(this.SelectedItem); 
    if (index - 1 < xyz.Count) 
     SelectedItem = xyz.ElementAt(index + 1); 
} 
相關問題