3レベルのグループ化を持つコレクションビューソースを持つWPF Datagridがあります。すべてのコンテンツが折りたたまれているときにエキスパンダーを非表示にする
私はそれがこのようになっていることを、このような3頭のパンダ使用するデータグリッドをスタイリングしている:
Level 1 Expander
<content>
Level 2 Expander
<content>
Level 3 Expander
<content>
レベル2およびレベル1は、グループのちょうどタイトル
ある私が許可する第二の制御を持っているがレベル3のエクスパンダを背後のオブジェクトのブール型「IsVisible」プロパティにバインドすることによって動作するレベル3のアイテムを表示および非表示にします。
<!-- Style for groups under the top level. this is the style for how a sample is displayed -->
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Margin" Value="0,0,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<!-- The parent control that determines whether or not an item needs to be displayed. This holds all of the sub controls displayed for a sample -->
<Expander Margin="2"
Background="{Binding Path=Name,
Converter={StaticResource SampleTypeToColourConverter}}"
IsExpanded="True"
Visibility="{Binding Path=Items[0].IsVisibleInMainScreen,
Converter={StaticResource BoolToVisibilityConverter}}">
この方法は幻想的にうまく機能します。
もつとも
ユーザーがレベル3エキスパンダー内のすべてのアイテムを選択解除した場合、レベル2のエキスパンダヘッダは、依然として価値のある不動産を目に見えるデータのグループのヘッダを示すまで使用されることを意味する表示。私が望む何
は、その子コントロールにレベル2エキスパンダーの可視性を結合して言う「すべての子どもが表示されている場合は、エキスパンダーを表示し、それ以外の場合は崩壊」
が可能これはするための方法ですか?
*すべての子が表示されている場合はエキスパンダーを表示し、そうでない場合はコンバータタスクのように表示されます。あなたはすでにプロパティ 'IsVisibleInMainWindow'を持っています。子供が倒れたときにそれを変更します。注: 'Items'は' ObservableCollection'でなければなりません。 – Sinatr
あなたは私たちにすべてのエクスパンダを含むより完全なxamlを与えることができますか? –
私はもっとxamlが必要だと思います。 – PScr