0

私はこれに長い間立ち往生しており、ここで助けが得られることを願っています。

したがって、データが入力されたデータグリッドがあります。私のviewmodelクラスには、->のプロパティを持つPersonプロパティがあります

名、姓、生年月日、IDなど

これで、ユーザーはデータグリッドで一度に 1 行しか選択できなくなりました。選択した行について、各列を人物オブジェクトのプロパティにバインドします。XAML でこれを行う方法はありますか?

どうもありがとう

4

1 に答える 1

0

これを行うには、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>
于 2013-08-13T21:09:38.663 に答える