1

我在这方面花了太多时间,所以如果有人能帮助我指出正确的方向,我将不胜感激。

我有一个带有 ListBox 的扩展器。我已将 ListBox 绑定到一个列表,即 FilteredProjects。我希望扩展器的标题反映显示列表中的项目数。我确实为 ProjectsCount 实现了 INotifyPropertyChanged,并且 ListBox 的 ItemsSource 更新得很好。在此先感谢您的时间。

        <Expander>
            <Expander.HeaderTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="Projects" />
                        <Border CornerRadius="4" Padding="0" BorderThickness="1" BorderBrush="Black" Background="#FF545F42" Margin="1,0,0,0" >
                            <Label Content="{Binding Path=ProjectsCount, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource filter}}" Padding="0" FontSize="8" FontStyle="Italic"></Label>
                        </Border>
                    </StackPanel>
                </DataTemplate>
            </Expander.HeaderTemplate>
            <ListBox x:Name="ProjectsFilterListView" Opacity="1" ItemsSource="{Binding FilteredProjects}"  >
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <CheckBox IsChecked="{Binding IsSelected}"  Content="{Binding ItemName}" Margin="10,10,0,10"></CheckBox>
                    </DataTemplate>
                    </ListBox.ItemTemplate>
            </ListBox>
        </Expander>
4

1 回答 1

1

你可以Item Count直接从ListBox

<Label Content="{Binding Path=Items.Count, ElementName=ProjectsFilterListView}" />

这是它工作的一个例子,我替换了标签,TextBlock所以我可以StringFormat在数字前添加“项目:”文本,因为我不确定你Converter在做什么

<StackPanel Orientation="Horizontal">
    <TextBlock Text="Projects" />
    <Border CornerRadius="4" Padding="0" BorderThickness="1" BorderBrush="Black" Background="Red" Margin="1,0,0,0" >
        <TextBlock Text="{Binding Path=Items.Count, ElementName=ProjectsFilterListView, StringFormat={} Items: {0}}" Padding="0" FontSize="10" FontStyle="Italic" Foreground="Black"/>
    </Border>
</StackPanel>

结果:

在此处输入图像描述

于 2013-04-02T07:45:47.213 回答