项目集合上的属性更改时,GroupItem更新扩展器标头

时间:2016-06-08 17:10:12

标签: c# wpf

我在CollectionListView中显示了一个int属性(Math.Max)的摘要,该属性被分组。这可以通过ValueConverter来完成,它可以正常工作,但每当这个底层项目的Proptery发生变化时,Expander.Header就不会更新。如果我手动订阅每个单项的每个PropertyChanged事件并触发CollectionChangedEvent,则整个视图会更新,并且扩展器状态会丢失。我怎么能在没有代码的情况下用XAML实现我想要的东西?

<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type GroupItem}">
                    <Expander IsExpanded="True">
                        <Expander.Header>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="Assign To: "/>
                                <TextBlock Text="{Binding Items, Converter{StaticResource PropertyCollectionConverter}}"/>
                            </StackPanel>       
                        </Expander.Header>
                        <ItemsPresenter/>
                    </Expander>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

我想要的是这样的(伪代码):

StackPanel Orientation="Horizontal">
    <TextBlock Text="Assign To: "/>
    <TextBlock Text="{Binding Items.Max(t => t.MyIntProperty)}"/>
</StackPanel> 

任何提示我怎么能达到这个目的?

0 个答案:

没有答案