GitHubのリンクに同じコレクションをバインド:https://github.com/babakin34/wpf_test/tree/master/WpfApp1コンボボックスやデータグリッド
I持って、次のクラス:
のviewmodels:
public class PersonVM : BindableBase
{
public int ID { get; set; }
private string _lastName;
public string LastName
{
get { return _lastName; }
set { SetProperty(ref _lastName, value); }
}
}
public class MainVM : BindableBase
{
public ObservableCollection<PersonVM> People { get; set; }
private PersonVM _selectedPerson;
public PersonVM SelectedPerson
{
get { return _selectedPerson; }
set { SetProperty(ref _selectedPerson, value); }
}
public MainVM()
{
People = new ObservableCollection<PersonVM>()
{
new PersonVM()
{
ID = 1,
LastName = "AA"
},
new PersonVM()
{
ID = 2,
LastName = "BB"
},
};
SelectedPerson = People.First();
}
}
VIEW:
<Grid>
<StackPanel>
<ComboBox ItemsSource="{Binding People}"
SelectedItem="{Binding SelectedPerson}"
DisplayMemberPath="LastName"
Margin="0,5,0,25"/>
<DataGrid ItemsSource="{Binding People}"/>
</StackPanel>
</Grid>
どのように私は、ユーザーがデータグリッドのデフォルトの最後のエントリによって引き起こされる空の要素を、選択したときにコンボボックスから「MainVM.SelectedPerson」が通知されていることを達成することができますか?
PS:私はプリズムを使用していますが、問題はプリズム関連ではありません。 BindableBaseをINotifyPropertyChangedに置き換えることができます。
これは、ComboBoxで選択できる実際のPersonVMではなく、DataGridに新しい項目を追加するためのプレースホルダです。 – mm8
@ mm8:DataGridの最後の行が必要なので、ユーザーは新しいエントリを追加できます。 –
この行を選択すると、ComboBoxに何を表示すると思われますか? – mm8