多くの検索の後、コードでエクスパンダを拡張するためにこのコードを思いつきました: 私はXAML/WPFを初めて使用しています。より良い方法が、私は、私はそれが働いて(しかしまだcompletly)しまっ幸せです検索エクスパンダエクスプレッサーがdynamicresourceから拡張されました。手動での変更がもう機能しない場合
XAMLの多くの後: は「ヘッダ」
xmlns:System="clr-namespace:System;assembly=mscorlib"
にこれを添加しWindow.Recources
にこれを追加<System:Boolean x:Key="booexapnders">False
</System:Boolean>
012ここで
は、エキスパンダーの一部(エクスパンダがリストビューにあるのDataTemplateで作られて)
<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の拡張版を見たいと思っています。私はボタンでこれらをすべて潰してしまいます。そして、リストビューの中で私が望むものを展開します。これは、私が手動で拡張したものは、「すべてを展開」または「すべてを折りたたむ」ボタンでもう反応しませんでしたか?
ありがとうございます。
「あなたの商品について」とはどういう意味ですか?私のクラスで? – Maximc
@ Maxim:あなたの 'ListView'のソースであるコレクション内のアイテムのタイプ。 (文字列の単純なコレクションを使用しているように見えますが、ヘッダに表示されているものとexpaded状態のプロパティを持つ適切なクラスに変更する必要があります) –
私はバインディングにクラスを使用します。しかし、私のコードをすべて貼り付けるのはとても複雑で、複数のリストビューを持っています。また、エクスパンダを持っていない人もいますし、複数のObservableCollectionsを持っています。アイテムはSQLite DBからロードされていますが、これを修正するためにクラスに新しいブール値を追加することをお勧めしません。主にリストには100人以上の「人物」があり、このリストビューには最大5つのアイテムしか存在しないためです。 – Maximc