我只需要一双额外的眼睛来看看我在这里做错了什么。
我在列表视图中有一个带有groupstyle的xaml页面。这是它的外观,
modelBuilder.Entity<Person>();
我需要做的是根据viewmodel中的条件隐藏groupstule标头。这是该物业。
<GroupStyle
HeaderContainerStyle="{StaticResource JumpListListHeaderContainerStyle}"
HidesIfEmpty="True">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Border
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
BorderThickness="0,0,0,1"
BorderBrush="{StaticResource RedBrush}"
Margin="0,0,0,9.5">
<TextBlock Text="{Binding Key}"
Foreground="{StaticResource RedBrush}"
FontSize="23"
Visibility="{Binding IsGroupheaderVisible, Converter={StaticResource BooleanToVisibilityConverter}}"
FontFamily="Segoe WP Semibold"
OpticalMarginAlignment="TrimSideBearings"
VerticalAlignment="Bottom" />
</Border>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
并且OnInitialize事件我根据某些条件将其设置为true或false。但不幸的是,它并没有隐藏/显示但总是显示出来。
这是我正在使用的BooleanToVisibilityConverter,
private bool _isGroupHeaderVisibile;
public bool IsGroupheaderVisible
{
get { return _isGroupHeaderVisibile; }
set
{
if (value == _isGroupHeaderVisibile) return;
_isGroupHeaderVisibile = value;
NotifyOfPropertyChange(() => IsGroupheaderVisible);
}
}
注意:我正在使用CaliburnMicro,所以我有像OnInitialize()这样的方法,我省略了。