コンテンツを折りたたむことなく、XAMLのコントロールGroupBox
の枠線を折りたたんで(つまり、VMのプロパティにバインドする)ことはできますか?コンテンツを折りたたまないでGroupBoxの枠を折りたたむ
境界線を削除したいだけでなく、BorderThickness
を0に、Header
を空の文字列に設定することで実現できます。私はまた、GroupBox
のコンテンツを国境のどこに伸ばしたいのですか?
<DataTemplate DataType="{x:Type config:ElementGroup}">
<DataTemplate.Resources>
<Style TargetType="{x:Type GroupBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=HideBorder}" Value="True">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
<Setter Property="Foreground" Value="{StaticResource TextColor}" />
<Setter Property="Header" Value="{Binding Path=ItemLabel}" />
<Setter Property="Margin" Value="5,0,5,0" />
</Style>
</DataTemplate.Resources>
<GroupBox>
<ItemsControl ItemsSource="{Binding Path=ElementList}" Visibility="Visible">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding Path=Columns}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</GroupBox>
</DataTemplate>
パフォーマンスに関する[codeDom](https://stackoverflow.com/users/5306861/codedom)のアプローチと比較して、このアプローチに関する考えはありますか? 'ItemsControl'がバインドする' ElementList'は、1秒間に数回更新する要素を含んでいます。 – Oystein
あなたはまだ非常に同じオブジェクトで非常に同じコレクションにバインドしていますか?同じソースコレクションに2回バインドしても、コレクション自体のコピーやその中のオブジェクトは作成されません。 – mm8
重複したItemsControlはどうですか? VM内の通知をオフにすると、折りたたまれたItemsControlも更新され、折りたたまれていても再描画されるため、追加のリソースが消費されますか? – Oystein