2016-04-14 25 views
0

私はこのようにWPFでリストビューを使用しているの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> 

次の行。現在の選択と同様に+ 1。

これをどのようにWPF MVVMで実現できますか?

答えて

3

まず、SelectedItemの代わりにSelectedIndexを使用することをお勧めします。

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

あなたはそれのSelectedItemを維持したい場合は、あなたのViewModelであなたの保存方法では、あなたは、単に1(インデックスが最後ではないかどうかをチェックすることを忘れないでください)

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

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

によってSelectedIndexをを増やすことができます同じようなことができるよりも

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

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