私はListBoxとBinding Studentsを持っているので、 "Btn"をクリックすると "ID"を取得したい。しかし、私はそれを行う方法がわかりません。どうすればいいか教えてください。ListBoxItemのコントロールから値を取得するには?
XAML:
<ListBox x:Name="listBox">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="12">
<TextBlock Text="{Binding Name,StringFormat=Name:\{0\}}"
Foreground="Orange"/>
<TextBlock Text="{Binding Age,StringFormat=Age:\{0\}}"
Foreground="Gray"/>
<Button Content="Get ID Of Student"
x:Name="Btn"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
のC#:
List<Student> students = new List<Student>
{
new Student{Name = "st1",Age = 20,ID = 1},
new Student{Name = "st2",Age = 18,ID = 2},
new Student{Name = "st3",Age = 21,ID = 3},
};
listBox.ItemsSource = students;
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public int ID { get; set; }
}
ありがとうございました。しかし、あなたの方法で、私は多くのプロパティを取得する必要がある場合、それを行う方法?例:パブリッククラスの学生(名前、年齢、身分証明書、学年、性別、ブリット、都市など)。私はそれらを手に入れたい。私は "タグ"は十分ではないと思う。 – BillyMadisonnn
@BillyMadisonnn私の答えのコードの最後の2行を参照してください。 'DataContext'を' Student'オブジェクトにキャストしてから、すべての生徒のプロパティにアクセスできます。代わりに 'CommandParameter'をオブジェクト全体(' CommandParameter = "{Binding}" ')にバインドし、' CommandParameter'を 'int'の代わりに' Student'オブジェクトとしてキャストすることができます。 – Rachel
ああそうです。良いアイデア!ありがとうございます。 – BillyMadisonnn