私は、アプリケーション内に3つのプロパティGroupName
,ItemName
、およびData
というクラスを持っています。これらのクラスのコレクションをGroupName
でグループ化し、そのItemName
プロパティをテキストボックスに表示するには、ListView
があります。問題は、コードを実行するとグループが正しく表示されますが、いずれのメンバーも表示されないことです。ここでなぜWPF ListViewのグループは空ですか?
は、XAMLコードです:
<ListView x:Name="MyList">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Expander IsExpanded="True">
<Expander.Header>
<TextBlock FontWeight="Bold" Text="{Binding Name}"/>
</Expander.Header>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListView.GroupStyle>
<ListView.ItemTemplate>
<DataTemplate DataType="{x:Type testProgram:MyClass}">
<TextBlock Text="{Binding ItemName}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
そしてここでは、背後にあるコードです:
public partial class MyListView
{
public MyListView(ObservableCollection<MyClass> items)
{
InitializeComponent();
Items = items;
var v = CollectionViewSource.GetDefaultView(Items);
v.GroupDescriptions.Add(new PropertyGroupDescription("GroupName"));
MyList.ItemsSource = v;
}
public ObservableCollection<MyClass> Items { get; set; }
}
私は<ListView.GroupStyle>...
を削除し、MyList.ItemsSource = Items;
を設定すると、その後すべてが正常に表示されます。 問題がItemsSource = v
,DataType = "{x:Type testProgram:MyClass}"
、{Binding ItemName}
の間であると思われますが、何が壊れているのか、それを修正する方法がわかりません。
だったという。ありがとう! – Kevlarz