0

Linq を使用してコンボボックス (親) コントロールとリストビュー (子) コントロールの間に、C# WPF でマスター詳細関係を作成することに行き詰まっています。

protected class Student
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Gender{ get; set; }
}

protected static List<Student> students = new List<Student>
{
   new Student {FirstName = "Terry", LastName = "Adams", Gender= "M"},
   new Student {FirstName = "Terry2", LastName = "Adams", Gender= "M"},
   new Student {FirstName = "Karry", LastName = "Adams2", Gender= "F"},
   new Student {FirstName = "Karry2", LastName = "Adams4", Gender= "F"},
}

コンボボックスは Gender groubby() によって生成され、リストビューはコンボボックスの選択に基づいて更新されます。このようなものですが、機能していません。ありがとうございます

var result = (from cat in students 
               select new {
               FirstName = cat.FirstName ,                                         
               LastName = cat.LastName}).Distinct().ToList();
4

3 に答える 3

3

リストビュー、コンボボックスで実際にデータを設定するより良い方法があるかもしれませんが、私はWPFにあまり慣れていませんが、linqは正しいようです。

    comboBox1.ItemsSource = students.Select(x => x.Gender).Distinct(); 

    private void SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        listView1.ItemsSource = students
            .Where(x => x.Gender == comboBox1.SelectedItem.ToString()).ToList();
    }

生徒は ToString() をオーバーライドする必要があります

    public override string ToString()
    {
        return string.Format("{0} {1}", FirstName, LastName);        
    }
于 2013-08-03T09:48:11.970 に答える