我创建了一个collectionviewsource,它绑定到我的收藏(对项目进行分组)
<CollectionViewSource x:Key="ColViewSource" Source="{Binding Collection}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Cat"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
我希望根据collectionitem中属性的值编辑组头。 我的Groupheader看起来像这样:
<StackPanel Orientation="Horizontal" Height="50">
<CheckBox Style="{StaticResource GroupCheckBox}" Margin="2,0,0,0" x:Name="chone" IsChecked="{Binding ischone}" VerticalAlignment="Center" IsHitTestVisible="False"/>
<TextBlock Text="{Binding Name}" FontSize="25" VerticalAlignment="Center" Foreground="White" />
<TextBlock Text="{Binding ItemCount}" FontSize="25" FontWeight="Bold" VerticalAlignment="Center" Foreground="White" />
</StackPanel>
假设第一组包含1个项目/行。此项目有一个文本框。我想要做的是当文本框有任何文本时,将此groupheader的复选框设置为True。 (如果txtbox.text!=&#34;&#34;)表示该组中的所有项目都已填写。
下一组有2个项目,每个项目都有一个复选框。现在,当项目中的复选框都为true时,我想将此groupheaders复选框设置为True。
等
答案:
foreach (CollectionViewGroup group in this.view.Groups){MessageBox.Show(group.Name.ToString()); }
..但我不能让代码工作 我的问题似乎是从某个地方(Collectionviewsource?)获取每个group / groupheader / values作为CollectionViewGroup对象?如果我可以这样做,我可以检查组名称是否等于某个值,并从那里执行我对物品属性值的检查,并设置组复选框,我猜。 有什么建议吗?