0

Cシャープの初心者なので、これはばかげた質問です。私は単純なクラスを持っています:

    public enum SexType { Male, Female };
        public class User
        {
            public string Name { get; set; }

            public int Age { get; set; }

            public string Mail { get; set; }

            public SexType Sex { get; set; }
        }

次に、このクラスを使用して、グループ化してリスト ビューを埋めます。

public Window4()
        {
            InitializeComponent();
            List<User> items = new List<User>();
            items.Add(new User() { Name = "John Doe", Age = 42, Sex = SexType.Male });
            items.Add(new User() { Name = "Jane Doe", Age = 39, Sex = SexType.Female });
            items.Add(new User() { Name = "Sammy Doe", Age = 13, Sex = SexType.Male });
            lvUsers.ItemsSource = items;

            CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(lvUsers.ItemsSource);
            PropertyGroupDescription groupDescription = new PropertyGroupDescription("Sex");
            view.GroupDescriptions.Add(groupDescription);

        }

今私ができるようにしたいのは、リストビューでグループが選択されたときに、個々のアイテムの値を取得できるようにすることだけです。したがって、リストビューで「John Doe」グループをクリックすると、年齢 (42) と名前 (John Doe) を取得できるようになります。そのため、リストビューの SelectedChanged メソッドに行きましたが、リストビューでレコードを選択すると、個々の値を取得できません。SelectedChange が発生してイミディエイト ウィンドウが開き、?listview.SelectedValue を見ると、次のようになります。私が試してみてください:?lvUsers.SelectedItems.Age; 「System.Collections.IList」には「Age」の定義が含まれておらず、拡張メソッド「Age」もありません

私が間違っていることを教えてください。ありがとうございました

4

1 に答える 1

0

はい、このエラーは、リストからクラス プロパティをフェッチしようとしたために発生します。フォローしてみてください

var obj=lvUsers.SelectedItems[0] as User;
if(obj!=null)
{
   var age=obj.Age;
}

お役に立てれば。

于 2013-10-13T16:31:55.697 に答える