扩展器IsExpanded来自dynamicresource,如果manualy改变不再工作

时间:2012-02-14 15:36:08

标签: c# wpf xaml expander dynamicresource

经过大量搜索后,我想出了这段代码来扩展我的扩展器代码: 我是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

现在的问题是,例如。我在listview中有5个项目,我希望看到1的扩展版本,我用一个按钮将它们全部折叠(这个工作)并且在listview中手动扩展我想要的那个(扩展以查看更多信息),但是在我之后这样做我刚刚手动扩展的那个就不再对“全部展开”或“全部折叠”按钮作出反应。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

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