Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <DataGrid HorizontalAlignment="Left" Height="100" Margin="54,25,0,0" VerticalAlignment="Top" Width="264"
- IsSynchronizedWithCurrentItem="True" AutoGenerateColumns="False"
- ItemsSource="{Binding DataSource}" SelectedItem="{Binding SelectedPerson}">
- <DataGrid.Columns>
- <DataGridTextColumn Binding="{Binding FirstName}" />
- <DataGridTextColumn Binding="{Binding LastName}" />
- </DataGrid.Columns>
- </DataGrid>
- public class Person
- {
- public string FirstName { get; set; }
- public string LastName { get; set; }
- }
- public class VM : Notifier
- {
- private ObservableCollection<Person> dataSource;
- public ObservableCollection<Person> DataSource
- {
- get { return dataSource; }
- set
- {
- dataSource = value;
- OnPropertyChanged("DataSource");
- }
- }
- private Person selectedPerson;
- public Person SelectedPerson
- {
- get { return selectedPerson; }
- set
- {
- selectedPerson = value;
- OnPropertyChanged("SelectedPerson");
- }
- }
- private string string1;
- public string String1
- {
- get { return string1; }
- set
- {
- string1 = value;
- OnPropertyChanged(String1);
- }
- }
- public VM()
- {
- String1 = "abc";
- DataSource = new ObservableCollection<Person>();
- DataSource.Add(new Person { FirstName = "Alpha", LastName = "Apple" });
- DataSource.Add(new Person { FirstName = "Beta", LastName = "Banana" });
- DataSource.Add(new Person { FirstName = "Charlie", LastName = "Cucumber" });
- }
- public ICommand SetSelectedCommand => new RelayCommandBase(SetSelected);
- private void SetSelected(object parameter = null)
- {
- SelectedPerson.FirstName = String1;
- SelectedPerson = SelectedPerson; // force setter to run
- DataSource = DataSource; // force ObservableCollection setter to run
- }
- }
Add Comment
Please, Sign In to add comment