我是新手,对 ListBox.GroupStyle 的某些语法感到困惑。编码:
<Window x:Class="testCollectionViewSource.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">
<Window.Resources>
<CollectionViewSource x:Key="CVS" Source="{Binding Path=Cs}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="B" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Source={StaticResource CVS}}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding S}"/>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListBox.GroupStyle>
</ListBox>
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Cs = new ObservableCollection<C>();
Cs.Add(new C(true, "1"));
Cs.Add(new C(false, "2"));
Cs.Add(new C(true, "3"));
Cs.Add(new C(false, "4"));
DataContext = this;
}
public ObservableCollection<C> Cs { get; set; }
}
public class C
{
public C(bool b, string s)
{
B = b;
S = s;
}
public bool B { get; set; }
public string S { get; set; }
}
所以我的问题是为什么只有当 {Binding Name } 标题显示“True”或“False”时,为什么 {Binding B } 不起作用?“名称”是什么意思,因为C 类没有这样的属性。