ListCollectionViewを使用してフォームにバインドする単純なObservableCollectionリストがあります。
バインド方法を制御したい問題。OKボタンを押したときにのみプロパティが変更されることを意味します。
今のように、「名」を変更してナビゲートすると、値が保存されます。
たとえば、「名」を XXX に変更し、次に移動してから戻ると、x ではなく XXX が表示されます...
これは MainWindow.xaml です。
public partial class MainWindow : Window
{
private ListCollectionView view;
private PersonRepository _personRepository;
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
_personRepository = new PersonRepository();
this.DataContext = _personRepository.Persons;
view = (ListCollectionView)CollectionViewSource.GetDefaultView(this.DataContext);
}
private void BackButton_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToPrevious();
view.Refresh();
}
private void OkButton_Click(object sender, RoutedEventArgs e)
{
}
private void NextButton_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToNext();
}
}
Person クラスは次のとおりです。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Age { get; set; }
public string Description { get; set; }
}
リポジトリはダミーデータを含む ObservableCollection です...私のxamlフィールドは次のようにバインドします:Text="{Binding FirstName, UpdateSourceTrigger=Explicit}"