私はこれに長い間立ち往生しており、ここで助けが得られることを願っています。
したがって、データが入力されたデータグリッドがあります。私のviewmodelクラスには、->のプロパティを持つPersonプロパティがあります
名、姓、生年月日、IDなど
これで、ユーザーはデータグリッドで一度に 1 行しか選択できなくなりました。選択した行について、各列を人物オブジェクトのプロパティにバインドします。XAML でこれを行う方法はありますか?
どうもありがとう
これを行うには、DataGrid のSelectedItemプロパティを使用します。これにより、データグリッドで選択されたアイテムが、対応する ViewModel クラス プロパティに直接バインドされます。以下のコード スニペットを参照し、役立つ場合は回答をマークしてください。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new ViewModel();
}
}
//VIEW MODEL
public class ViewModel
{
private Person _selectedPerson;
public Person SelectedPerson
{
get { return _selectedPerson; }
set { _selectedPerson = value; }
}
public List<Person> PersonCollection { get; set; }
public ViewModel()
{
PersonCollection = new List<Person>();
for (int i = 0; i < 10; i++)
{
PersonCollection.Add(new Person()
{
Id = i.ToString(),
FirstName = "First Name " + i.ToString(),
LastName = "Last Name " + i.ToString()
});
}
}
}
//PERSON CLASS
public class Person
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
In XAML
-------
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid ItemsSource="{Binding PersonCollection}"
SelectedItem="{Binding SelectedPerson}" />
</Grid>
</Window>