0

经过大量搜索后,我想出了这段代码来按代码扩展我的扩展器:我是 XAML/WPF 的新手,所以很可能我可以以更好的方式做到这一点,但经过大量搜索后,我很高兴我能正常工作(但还没有完全)

XAML:将此添加到“标题”

 xmlns:System="clr-namespace:System;assembly=mscorlib"

然后将此添加到 Window.Recources

 <System:Boolean x:Key="booexapnders">False          
        </System:Boolean>

这是扩展器的一部分(扩展器是在 Listview 中的数据模板中制作的)

  <ListView x:Name="lsvteamleft" SelectionChanged="lsvleft_SelectionChanged"  GotFocus="lsv_GotFocus" ScrollViewer.VerticalScrollBarVisibility="Visible">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <Expander Header="{Binding}" Margin="0,0,0,2" IsExpanded="{DynamicResource booexapnders}" >
                                    <Expander.HeaderTemplate>

我可以向此列表视图添加多个项目,因此制作了多个扩展器。在 c# 中,我使用以下代码:

this.Resources["booexapnders"] = true; // to expand all the expanders
this.Resources["booexapnders"] = false; // to colapse all the expanders

现在的问题是,例如。我在列表视图中有 5 个项目,我想查看 1 的扩展版本,我用一个按钮将它们全部折叠(这可行)并在列表视图中手动展开我想要的项目(展开以查看更多信息),但是在我之后我刚刚手动展开的那个不会对“全部展开”或“全部折叠”按钮做出反应。

先感谢您。

4

1 回答 1

0

您应该绑定IsExpanded到您的项目上的一个属性,然后展开或折叠所有您遍历集合并更改所有项目的值,更改一个您只需为单个项目执行的操作,更多控制。

于 2012-02-14T15:39:41.747 回答