0

何度も検索した後、コードでエキスパンダーを展開するこのコードを思いつきました。 (ただし、まだ完全ではありません)

XAML: これを「ヘッダー」に追加しました

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

次に、これを Window.Resources に追加しました

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

これがエキスパンダーの一部です(エキスパンダーはリストビューにあるデータテンプレートで作成されます)

  <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 に答える